在旧的V1路由器中,所有控制器都注入到路由器中,因此可以:
foo = App.get('router').get('applicationController').get('bar');
Run Code Online (Sandbox Code Playgroud)
在新的V2路由器中,我似乎无法做到:
router = App.get('router')
Run Code Online (Sandbox Code Playgroud)
这改变了吗?
预期的设计模式是否已更改?我一直都做错了吗?
今天,您可以通过以下方式访问路线(和路线行动)中的控制器:
this.controllerFor('posts')
Run Code Online (Sandbox Code Playgroud)
在控制器中,您声明对其他控制器的依赖:
App.Post = Ember.ObjectController.extend({
needs: ['posts']
});
Run Code Online (Sandbox Code Playgroud)
然后,在控制器内部,您也可以使用this.controllerFor.
仅供参考,我们计划让this.get('controllers.posts')在needs使用的控制器内工作,这将使模板中的依赖控制器直接使用.
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |