【问题标题】:$state.go not working with 3rd-level nested state (using Ionic tabs / AngularUI)$state.go 不适用于 3 级嵌套状态(使用 Ionic 选项卡/AngularUI)
【发布时间】:2014-08-31 03:30:36
【问题描述】:

我正在尝试使用$state.go 在 Ionic(+AngularJS UI 路由器)应用程序中的选项卡之间切换,但我无法使其与子子状态(state.substate.子状态)。当移动到子状态 (state.substate) 时,它实际上工作正常。

这就是我的意思:http://codepen.io/anon/pen/Jykmi?editors=101
按“Tab2”按钮既不起作用也不会引发错误。尽管如此,用ui-sref="tabs.tab2.home1"href="#/tabs/tab2/home1" 替换ng-click="goToState('tabs.tab2.home1')"(第25 行)效果很好。这是一个例子:http://codepen.io/anon/pen/DIxhC?editors=101

即使使用ng-click="goToState('tabs.tab2')" 也可以,尽管这不是预期的目标状态。

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

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

非常感谢。
问候,
拉法。

【问题讨论】:

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


【解决方案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');
}

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

【讨论】:

    【解决方案2】:

    正如ui-sref="tabs.tab2.home1" 内部使用$state.go 和你所说的ui-sref="tabs.tab2.home1" 工作。

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

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

    【讨论】:

      猜你喜欢
      • 2014-03-16
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      相关资源
      最近更新 更多