Ember.js 路由器 v2 和注入(inject) Controller

标签 ember.js

在旧的 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/

相关文章:

javascript - Emberjs - 我需要一个可以更改变量值的操作

javascript - 更改模型属性 emberjs 的值

javascript - 在 Ember.js 中获取路由列表

ember.js - 如何删除 ArrayController (Ember) 内容数组中的元素

javascript - 使用 jquery ui 对话框时 Ember 中的两种方式绑定(bind)中断

ember.js - 如何将我的产品资源实现到 Pods 结构中?

ember.js - Ember 并发与 Web Worker

unit-testing - Qunit 测试位于包含多个 Controller 的文件中的 ember Controller ?

javascript - 如何访问隐藏在 DS.PromiseArray 中的数组数据

javascript - EmberJS 无法读取未定义的属性 'on'