在旧的 V1 路由器中,所有 Controller 都被注入(inject)到路由器中,因此可以这样做:
foo = App.get('router').get('applicationController').get('bar');
在新的V2路由器中,我似乎连做都做不到:
router = App.get('router')
这有改变吗?
预期的设计模式是否发生了变化?我一直都做错了吗?
最佳答案
今天,您可以通过以下方式从您的路由(和路由操作)访问 Controller :
this.controllerFor('posts')
在你的 Controller 中,你声明对其他 Controller 的依赖:
App.Post = Ember.ObjectController.extend({
needs: ['posts']
});
然后,在您的 Controller 内部,您还可以使用 this.controllerFor
。
仅供引用,我们计划让 this.get('controllers.posts') 在使用 needs
的 Controller 内部工作,这样可以直接在模板内部使用依赖 Controller 。
关于Ember.js 路由器 v2 和注入(inject) Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14349485/