2016-01-13 45 views
0

有我的应用程序分页,它使用的URL部分,用于储存页码:URL的这个样子的:/someList/1/someList2/界面路由器:旧控制器呼吁改变状态

我改变这部分使用$state.go($state.current.name, {page: $scope.currentPage}, {reload: false, notify: false});

它在这一点上正常工作。

但是在任何状态改变之后someList的控制器正在被调用。如果我将notify更改为true,则不会发生这种情况,但会重复我的分页逻辑。

那么:有什么办法可以阻止这个旧控制器被调用,也许在$stateChangeStart处理程序?

回答

0

好吧,我已经找到了一个解决办法:

  • $stateChangeStart事件处理程序设置一个变量$rootScope.stateChangingtruefalse$stateChangeSuccess
  • 现在它可以用于像$rootScope.stateChanging || init();这样的控制器来停止执行控制器功能。

我不认为这是一个合适的解决方案,所以我已经报告这是一个问题(https://github.com/angular-ui/ui-router/issues/2457),但它可能有助于某人。

相关问题