1

假设我有一个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);
  }
});

和模型中的查找方法:

CellarRails.Track.reopenClass({
  find: function(params) {
    ...
    some code
    ...
    return result;
  }
});

问题:结果数组正确返回,模型钩子被触发,但控制器的内容是未定义的,它的长度是0,那我做错了什么?

4

1 回答 1

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);
  }
});

更新,以回应您的最后评论

有关工作演示,请参见此处。

希望能帮助到你。

于 2013-08-14T09:51:04.583 回答