3

古いV1ルーターでは、すべてのコントローラーがルーターに挿入されていたため、次のことが可能でした。

foo = App.get('router').get('applicationController').get('bar');

新しいV2ルーターでは、次のことすらできないようです。

router = App.get('router')

これは変わりましたか?

意図したデザインパターンは変更されましたか?私はずっとそれを間違っていましたか?

4

1 に答える 1

8

現在、次の方法でルート(およびルートアクション)からコントローラーにアクセスできます。

this.controllerFor('posts')

コントローラで、他のコントローラへの依存関係を宣言します。

App.Post = Ember.ObjectController.extend({
  needs: ['posts']
});

そして、コントローラー内で、を使用することもできますthis.controllerFor

参考までに、this.get('controllers.posts')をを使用するコントローラー内で機能さneedsせる予定です。これにより、テンプレート内で依存コントローラーを簡単に使用できるようになります。

于 2013-01-16T00:32:44.373 に答える