2013-12-15 19 views
9

私のUIルータの設定から、コントローラ上のメソッドを呼び出すには、このようなものです:角度UIルータ:フォーカス取得時

$stateProvider 
    .state("list",{url:"/list",templateUrl:"list.html",controller:"ctrl as vm"}) 
    .state("list.select", 
     url:'/select', 
     templateUrl:'select.html', 
     onEnter:function() { ... } 
    }); 

list.select状態は、リスト状態と同じコントローラを使用しています。どうすればonEnter関数からコントローラ上のメソッドを呼び出すことができますか?私は "ctrl as vm"構文を使用しています。 $ stateParamsにもアクセスできますか?

答えて

2

確かに$stateParamsonEnterと他のサービスでアクセスできます。ただし、現在または親(または他の)コントローラインスタンスを注入する方法はありません。あなたは、コントローラ上でこのようにメソッドを呼び出すことはできませんが

だから、あなたは前処理何かにonEnterまたはresolveを使用すると、おそらくその方法をチェックして呼び出すためにlist.selectためのフラグを使用することができます。

サービスを使用してこの機能を調整する方が意味があるかもしれませんが、私はあなたのアプローチの目的を知らないので、もっと知る必要があります。

+0

私は状態の設定で解決を使用して問題を解決しました。コントローラ上でメソッドを呼び出そうとしていませんが、状態設定パラメータでコントローラに必要なデータを解決しようとしています – rekna

+7

@reknaあなたの例を挙げてください。私は同じケースで走っています。どうも – jmcollin92

関連する問題