jog*_*ggg 7 ember.js ember-data
任何人都可以暗示ember/ember-data的内部工作原理:
在路径模型函数中,如果我使用contract.id值查询注释,则返回带有对象的AdapterPopulatedRecordArray对象.
Route返回AdapterPopulatedRecordArray:
model: function() {
return this.store.find('comment', { contract: 1 });
},
Run Code Online (Sandbox Code Playgroud)
但是如果我不查询注释,则会返回带有对象的RecordArray对象.
Route返回RecordArray:
model: function() {
return this.store.find('comment');
},
Run Code Online (Sandbox Code Playgroud)
关键的区别在于RecordArray类型实时更新对模板的更改,而AdapterPopulatedRecordArray不是并且是不可变的.我的目标是使第一个查询中的对象实时更新和可变.
我正在使用Ember 1.2/1.1.2和最新金丝雀/ beta3 Ember数据与Django Rest框架Ember数据适配器.提前感谢任何建议!
看看Store#find 是如何工作的,this.store.find('comment', { contract: 1 })将调用 Store#findQuery。
#findQuery 的文档说
此方法返回一个承诺,一旦
RecordArray服务器返回,该承诺就会被解决。
// #_findQuery
return resolve(promise).then(function(payload) {
payload = serializer.extract(store, type, payload, null, 'findAll');
// ...
recordArray.load(payload);
return recordArray;
Run Code Online (Sandbox Code Playgroud)
一旦DS.AdapterPopulatedRecordArray#load被调用,内容属性就被设置并且应该像 RecordArray 一样工作
this.setProperties({
content: Ember.A(records),
isLoaded: true,
meta: meta
});
Run Code Online (Sandbox Code Playgroud)
当您查看时,是否还没有收到服务器响应this.store.find('comment', { contract: 1 })?
| 归档时间: |
|
| 查看次数: |
811 次 |
| 最近记录: |