获取包含id和查询参数的模型

时间:2013-06-28 15:14:18

标签: ember-data

我有一条路线应该加载一个模型(BatchDetail)和一些相关的项目(BatchItems)。由于有很多项目,我应该可以使用两个请求参数limitoffset进行分页。

以下是我设置的路线:

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中收到的正确数据。

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

这意味着无论adapter.ajax返回什么都没有正确解析,而是返回undefined。我很困惑,因为上面的机制正是ember-data(findfindById等)中不同findByQuery方法的工作原理,而这正是我从中得到我的想法的地方。

你能说清楚我没有得到什么吗?

谢谢。

0 个答案:

没有答案