$ state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)

时间:2014-07-09 23:00:04

标签: angularjs ionic-framework angular-ui-router

我正在尝试使用$state.go在Ionic(+ AngularJS UI路由器)应用程序中的标签之间切换,但我无法使其与子子状态(状态)一起使用。 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')"也行,但这不是预期的目标状态。

我发现了其他类似的问题(例如thisthis),但我认为他们没有遇到同样的问题。

有人知道$state.go是否适用于第三级嵌套状态?我的代码中存在问题吗?。

提前多多谢谢 问候,
拉法。

2 个答案:

答案 0 :(得分:1)

由于ui-sref="tabs.tab2.home1"在内部使用$state.go,正如您所说ui-sref="tabs.tab2.home1"有效。

我的回答是肯定的:$state.go()应该适用于第三级嵌套状态。

我实际上在我自己的项目中使用它没有任何问题(但没有离子标签)

答案 1 :(得分:1)

对不起,我没有足够的声誉来添加评论。

我遇到了与你完全相同的问题:href或ui-sref工作正常,而使用$ state.go进行ng-click无效(浏览器中的地址已正确更改但视图仍未被重定向)。我只是同时使用它们解决了这个问题:

在html中:

ui-sref="tabs.tabs2.home" + ng-click="goHome()" 

href="#/tabs/tabs2/home" + ng-click="goHome()" 

在控制器js中:

$scope.goHome = function(){
    $state.go('tabs.tabs2.home');
    // or, location.path works fine too:
    // $location.path('/tabs/tabs2/home');
}

我不知道原因,所以这只是一种解决方法