它应该路由到/users/me/
而不是路由到/users//
如果我手动编写/users/me/
网址或使用链接移动到那里,一切正常。但是过渡到没有做我期望的事情,我无法弄明白为什么。
在我的代码中,我有:
$state.transitionTo('users.me');
在我的路线(州)配置中我有:
state('users', {
abstract:true,
templateUrl: '/path/to/template.html',
access: { isPrivate: 0 },
resolve: {
...a resolve block..
}).state('users.me',{
url: '/users/:id/',
controller: 'userCtrl',
access: { isPrivate: 0 },
views:{
'userView':{
templateUrl:'/path/to/template.html'',
controller:'userCtrl',
},
'view1':{
templateUrl:'/path/to/template.html'',
controller:'anotherCtrl',
},
'view2':{
templateUrl:'/path/to/template.html'',
controller:'anotherCtrl',
},
'view3':{
templateUrl:'/path/to/template.html'',
controller:'anotherCtrl',
},
'view4':{
templateUrl:'/path/to/template.html',
controller:'anotherCtrl'
}
}
我很乐意为你提供帮助
答案 0 :(得分:19)
确保您提供身份证明。
$state.transitionTo('users.me', {'id': 'me'});
这应该可以使它工作,但你应该使用go()
方法作为transitionTo是一个低级函数,因为0.2.0。
$state.go('users.me', {'id': 'me'});
答案 1 :(得分:0)
在您的情况下,您应该使用$state.go('users.me', {'id': 1});
$ state.go(to [,toParams] [,options])
返回表示转换状态的Promise。
转换到新状态的便捷方法。 $ state.go在内部调用$ state.transitionTo但自动将选项设置为{location:true,inherit:true,relative:$ state。$ current,notify:true}。这允许您轻松使用绝对路径或相对路径,并仅指定您要更新的参数(同时让未指定的参数从当前状态继承)。
$ state.transitionTo(to,toParams [,options])
返回表示转换状态的Promise。
转换到新状态的低级方法。 $ state.go()在内部使用transitionTo。在大多数情况下,建议使用$ state.go()。