古いV1ルーターでは、すべてのコントローラーがルーターに挿入されていたため、次のことが可能でした。
foo = App.get('router').get('applicationController').get('bar');
新しいV2ルーターでは、次のことすらできないようです。
router = App.get('router')
これは変わりましたか?
意図したデザインパターンは変更されましたか?私はずっとそれを間違っていましたか?
古いV1ルーターでは、すべてのコントローラーがルーターに挿入されていたため、次のことが可能でした。
foo = App.get('router').get('applicationController').get('bar');
新しいV2ルーターでは、次のことすらできないようです。
router = App.get('router')
これは変わりましたか?
意図したデザインパターンは変更されましたか?私はずっとそれを間違っていましたか?
現在、次の方法でルート(およびルートアクション)からコントローラーにアクセスできます。
this.controllerFor('posts')
コントローラで、他のコントローラへの依存関係を宣言します。
App.Post = Ember.ObjectController.extend({
needs: ['posts']
});
そして、コントローラー内で、を使用することもできますthis.controllerFor
。
参考までに、this.get('controllers.posts')をを使用するコントローラー内で機能さneeds
せる予定です。これにより、テンプレート内で依存コントローラーを簡単に使用できるようになります。