【发布时间】:2014-02-27 22:51:26
【问题描述】:
我试图在 Ember 的一条路线上处理多个控制器。 This response 似乎是要走的路,但很难让它发挥作用。这是一个失败的简单示例:
App.IndexRoute = Ember.Route.extend({
model: function() {
myData = [1,2,3];
return Em.RSVP.hash({
docs1: myData,
docs2: myData
});
},
setupController: function(controller, model) {
controller.set('model', model.docs1);
this.controllerFor('documents').set('model', model.docs2);
}
});
App.DocumentsController = Ember.ArrayController.extend({
count: function() {
return this.get('length');
}.property('@each'),
});
App.IndexController = Em.ArrayController.extend({
count: function() {
return this.get('length');
}.property('@each'),
});
还有一个显示结果的 JSBin:
http://jsbin.com/wavigada/1/edit
您可以看到 IndexController 报告的正确计数为 3,但 DocumentsController 未设置。
谁能帮帮我?
【问题讨论】:
-
您链接到的问题讨论了多个模型,而不是控制器。老实说,我不知道是否有可能为一条路线设置多个控制器。
-
在您使用
render帮助器的模板中,如果您不传递显式模型,则 Ember.js 将返回文档控制器的单例实例,该实例将正确设置模型。这是工作示例:jsbin.com/wavigada/5/edit。 (另外,你有一些尾随逗号你应该在你的计算属性之后清理。 -
@Sarus 谢谢,看来您的答案正是我想要的。令人沮丧的是太简单了@
标签: javascript ember.js