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 回答