假设我有ArrayController
:
CellarRails.SearchController = Ember.ArrayController.extend({
content: []
});
和SearchRoute
:
CellarRails.SearchRoute = Ember.Route.extend({
model: function(params) {
console.log('MODEL HOOKED!!');
return CellarRails.Track.find(params);
}
});
和模型中的find方法:
CellarRails.Track.reopenClass({
find: function(params) {
...
some code
...
return result;
}
});
问题:结果数组正常返回,模型钩子被触发,但控制器的内容是未定义的,它的长度是0,所以我做错了什么?
答案 0 :(得分:3)
您应该添加setupController
挂钩并将内容设置为find()
操作返回的模型:
CellarRails.SearchRoute = Ember.Route.extend({
model: function(params) {
console.log('MODEL HOOKED!!');
return CellarRails.Track.find(params);
},
setupController: function(controller, model) {
controller.set('content', model);
}
});
有关正常工作的演示,请参阅here。
希望它有所帮助。