我有一些问题要将一个页面重定向到另一个页面 我在控制器中使用了代码
$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"
}
});
我想在上面重定向。 我在控制器中创建了一个函数,并在单击表行时调用。但当我点击行时,这会重定向到我的主页。
答案 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