2016-04-30 69 views
2

具體app.state變化是否有任何檢測特定國家改變只喜歡在我的情況 我想只要我們從app.state 1到2 app.state 控制器運行的功能的方法.js文件檢測的離子

if(app.state1 to app.state2) { 
    $scope.run(); 
    } 

我已經搜索過,但沒有發現任何與此有關。
此致敬禮。

+0

對不起,我從來沒有用過Ionic。 –

+0

沒問題@Rory – Atula

回答

1

離子途徑中使用的角UI-路由器因此事件回調以相同的方式使用:

ui-router

在適當情況下:

$rootScope.$on('$stateChangeStart', function(ev, toState, toParams, fromState, fromParams){ 
    if(toState.name == 'stateA' && fromState.name == 'stateB') { 
     // run your code 
     $scope.run(); 
    } 
}); 

(UPDATE)

如果您需要詢問多個州:

$rootScope.$on('$stateChangeStart', function(ev, toState, toParams, fromState, fromParams){ 

    var states = ['stateB', 'stateC', 'stateD']; 

    if(toState.name == 'stateA' && states.indexOf(fromState.name) > -1) { 
     // run your code 
     $scope.run(); 
    } 
}); 
+0

非常感謝。你真的解決了我的問題。 – Atula

+0

還有一個問題。我們可以添加多個* fromState.name *嗎? – Atula

+0

不客氣,fromState將始終只顯示路由器將要運行的當前狀態。如果你想要求多個狀態,你可以使用一個單獨的JavaScript代碼:'var states = ['stateB','stateC','stateD'];如果(states.indexOf(fromState.name)> -1){...}' – felipecamposclarke