2016-04-30 4 views
2

特定の状態を検出する方法は私の場合のようにしか変わらない app.state 1からapp.state 2に移動する場合にのみ関数を実行したい。 コントローラ.jsファイル特定のapp.stateの変化を検出する

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

私も検索が、これに関連したものは認められません。
よろしく。

ui-router

適切:

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

(UPDATE)

場合

+0

申し訳ありませんが、私は決してIonicを使用しませんでした。 –

+0

問題ありません@Rory – Atula

答えて

1

イオン経路は、従って、イベントコールバックは、同じ方法で使用される角度UI-ルータを使用しました複数の州を尋ねる必要があります:

$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

ありがとうございます。あなたは本当に私の探求を解決しました。もう1つ質問があります。 – Atula

+0

複数* fromState.name *を追加できますか? – Atula

+0

あなたは歓迎します、fromStateは常にルーターが行く現在の状態だけを持って来ます。複数の状態を要求したい場合は、単一のjavascriptコードを使用できます: 'var states = ['stateB'、 'stateC'、 'stateD']; if(states.indexOf(fromState.name)> -1){...} ' – felipecamposclarke

関連する問題