我有一个控制器处理模型列表.这些模型有两种不同的类型(例如Message和Comment).为了使用ArrayController我必须将两个列表合并为一个.有没有办法做到这一点 ?
这个线程中提出的基于类的多态性将解决我的问题,但它们不太可能很快实现.
在我目前的解决方案,我用一个ObjectControllerreveiving都comments和messages.然后我使用计算属性合并它们:
App.SomeRoute = Ember.Route.extend({
model: function (params) {
return Em.Object.create({
comments: this.store.find('comment'),
messages: this.store.find('message'),
});
},
});
App.SomeIndexController = Ember.ObjectController.extend({
merged: Em.computed.union('messages', 'comments'),
});
Run Code Online (Sandbox Code Playgroud)
它有效,但我没有受益于所有的细节ArrayController(sortProperties例如).
我想做的是:
App.SomeRoute = Ember.Route.extend({
model: function (params) {
var comments = this.store.find('comment');
var messages = this.store.find('message');
return merge(comments, messages);
},
});
Run Code Online (Sandbox Code Playgroud)
其中merge返回类似的是什么东西回来this.store.find('model').