我有一个应该加载模型(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
。我很困惑,因为上述机制正是find
ember-data ( , 等) 中不同方法的findById
工作方式findByQuery
,这就是我的想法。
你能解释一下我没有得到什么吗?
谢谢你。