2016-01-13 71 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),但它可能有助於某人。