1

我有一个应该加载模型(BatchDetail)和一些相关项目(BatchItems)的路线。由于有很多项目,我应该能够在两个请求参数的帮助下进行分页,limit并且offset.

这是我设置的路线:

App.BatchDetailRoute = Ember.Route.extend({
  model: function(params) {
    var store = this.get('store');
    var adapter = store.get('adapter');
    var id = params.batch_detail_id;

    var rejectionHandler = function(reason) {
      Ember.Logger.error(reason, reason.message);
      throw reason
    }

    return adapter.ajax("/batch_details/" + id, "GET", {
      data: { limit: 50, offset: 100 }
    }).then(function(json) {
         adapter.didFindRecord(store, App.BatchDetail, json, id);
    }).then(null, rejectionHandler);
  },


  setupController: function(controller, model) {
    return this.controllerFor('batchItems').set('model', model.get('items'));
  }
})

这样,当我转到/batch_details/1我的 REST 适配器时,将获取我json在上述代码中收到的正确数据。

现在,模型钩子应该返回一个模型对象或可以解析为模型对象的承诺,这就是问题所在。在setupController(在model钩子之后运行)模型设置为undefined,所以我的代码爆炸了。

这意味着无论adapter.ajax返回什么都不能正确解析,而是返回undefined。我很困惑,因为上述机制正是findember-data ( , 等) 中不同方法的findById工作方式findByQuery,这就是我的想法。

你能解释一下我没有得到什么吗?

谢谢你。

4

0 回答 0