4

emberjs pre2 では、次の方法で別のコントローラーからコントローラーまたはコントローラー内の任意のメソッドにアクセスできました。

App.get('router').get('navController').method1();

emberjs rc1の同様のコードを提案できる人はいますか?

ありがとう

4

3 に答える 3

17

は推奨されていないため、より正しい方法はニーズcontrollerForにあると思います:

this.get('controllers.nav').method1()

コントローラーでニーズを宣言する必要があります。

App.YourController = Ember.ObjectController.extend({
  needs: ['nav'],
  ....
于 2013-03-26T17:53:34.703 に答える
3

aControllerまたは a の中でRoute試すことができます

this.controllerFor("nav").method1()

注意

これは質問されたときの正解でしたが、廃止されたため、 joscascontrollerForの回答を確認してください

于 2013-03-07T06:55:25.540 に答える
2

Ember 2 では、これは、アクセスしたいコントローラーを注入することで機能します。

export default Ember.Controller.extend({
  nav: Ember.inject.controller(),
});

または、コントローラー名とは異なる名前を指定する場合:

export default Ember.Controller.extend({
  navController: Ember.inject.controller('nav'),
});

次に、注入されたコントローラーのメソッドに次のようにアクセスできます。

this.get('navController').method1()
于 2016-03-21T04:03:46.493 に答える