我在angular-ui路由器中有一个状态:
.state('example', {
url: '/example?foo&bar',
templateUrl: '/partials/example.html',
controller: 'ExampleController'
})
在 ExampleController 中,我这样做:
console.log($state.href('example', {}, {inherit: false}));
然后我将我的应用导航到/example?foo=1&bar=2
我希望我的控制器只记录 / example (以后用于创建规范网址)
但它始终记录当前状态/example?foo=1&bar=2
。
我做错了什么? 感谢
答案 0 :(得分:0)
ui-router
有2个信息,我们可以用于记录。
$state
名称 (在我们的案例中为“示例”) 就是这样 - 没有任何分开的信息:状态网址没有参数...
以下an example显示了州所包含的内容。所以我们甚至用id参数扩展上面的状态:
.state('example2', {
url: '/example2/:id?foo&bar',
templateUrl: '/partials/example.html',
controller: 'ExampleController',
})
如果我们观察到这样的当前状态 <a ui-sref="example2({id: 222, foo:2,bar:4})">
,我们可以看到:
{
"params": {
"id": "222",
"foo": "2",
"bar": "4"
},
"current": {
"url": "/example2/:id?foo&bar",
"templateUrl": "/partials/example.html",
"controller": "ExampleController",
"name": "example2"
},
"transition": null
}
所以,我建议:如果你需要loggin只是一个状态..使用$state.current.name