2016-04-30 34 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