将一个页面重定向到另一个页面

时间:2015-12-30 11:19:31

标签: angularjs

我有一些问题要将一个页面重定向到另一个页面 我在控制器中使用了代码

 $window.location.href = '/test';
 $location.path( "/test");

但是当我使用它时,它将在主页上重定向

 .state('test', {
    url: '/tests/:testId',
    templateUrl: TEMPLATE_URL + 'tests/test.html',
    controller: "testController",
    resolve: {
      testId: ['$stateParams', function ($stateParams) {
          return $stateParams.testId;
        }]
    },
    data: {
      title: "Test"
    }
  });

我想在上面重定向。 我在控制器中创建了一个函数,并在单击表行时调用。但当我点击行时,这会重定向到我的主页。

3 个答案:

答案 0 :(得分:1)

只有一个状态,名为test,网址为/test/:testId。由于您显然正在使用与状态一起使用的ui-router,因此执行以下代码应该可以解决问题:

$state.go('test', {'testId': 123});

请勿忘记将$state注入您的控制器。

如果你想使用那种"硬编码"网址重定向($location.path$window.location.href是直接网址重定向)代码如下所示:

$window.location.href = '/test/123';
$location.path( "/test/123");

您忘记了示例中的参数。

答案 1 :(得分:1)

在您的情况下,您必须使用:

$state.go('test', { testId : 'yourTestId' }, {reload: true});

$state.go('test'); //For a route without params 

当然你必须在控制器中注入$ state。

如果你想使用

$window.location.href = '/plan';
$location.path( "/plan");

您必须将您的网络服务器配置为接受此:

以nginx为例:

location / {
               ##try_files $uri$args $uri$args/ $uri/ /index.html$args =404;
               try_files $uri $uri/  /index.html =404;
       }

答案 2 :(得分:0)

在您的情况下,您应该使用$state.go()

$state.go('test', {'testId': 123});

点击此处了解有关它的更多信息http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state