我正在尝试使用 $state.go
在Ionic(AngularJS UI路由器)应用程序中的选项卡之间切换,但我无法使其与子子状态(state.substate.subsubstate)一起使用 . 它实际上在移动到子状态(state.substate)时工作正常 .
这就是我的意思:http://codepen.io/anon/pen/Jykmi?editors=101
按"Tab2"按钮既不起作用也不引发错误 . 尽管如此,将 ng-click="goToState('tabs.tab2.home1')"
(第25行)替换为 ui-sref="tabs.tab2.home1"
或 href="#/tabs/tab2/home1"
,效果非常好 . 这是一个例子:http://codepen.io/anon/pen/DIxhC?editors=101
即使使用 ng-click="goToState('tabs.tab2')"
也可以,但这不是预期的目标状态 .
我发现了其他类似的问题(如this和this),但我不认为他们有同样的问题 .
有人知道 $state.go
是否应该与第三级嵌套状态一起使用?是我的代码中的问题吗?
非常感谢提前 .
问候,
拉法 .
2 回答
正如
ui-sref="tabs.tab2.home1"
内部使用$state.go
正如你所说ui-sref="tabs.tab2.home1"
有效 .我的回答是肯定的:
$state.go()
应该适用于第三级嵌套状态 .我实际上在我自己的projet中使用它没有问题(但没有离子标签)
对不起,我没有足够的声誉来添加评论 .
我得到了与你完全相同的问题:href或ui-sref工作正常,而使用$ state.go进行ng-click无效(浏览器中的地址已正确更改,但视图仍未被重定向) . 我只是同时使用它们解决了这个问题:
在html中:
要么
在控制器js中:
我不知道原因,所以这只是一种解决方法