首页 文章

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

提问于
浏览
5

我正在尝试使用 $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')" 也可以,但这不是预期的目标状态 .

我发现了其他类似的问题(如thisthis),但我不认为他们有同样的问题 .

有人知道 $state.go 是否应该与第三级嵌套状态一起使用?是我的代码中的问题吗?

非常感谢提前 .
问候,
拉法 .

2 回答

  • 1

    正如 ui-sref="tabs.tab2.home1" 内部使用 $state.go 正如你所说 ui-sref="tabs.tab2.home1" 有效 .

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

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

  • 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');
    }
    

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

相关问题