任何人都可以暗示ember / ember-data的内部工作原理:
在路径模型函数中,如果我使用contract.id值查询注释,则返回带有对象的AdapterPopulatedRecordArray对象.
Route返回AdapterPopulatedRecordArray:
model: function() { return this.store.find('comment',{ contract: 1 }); },
但是如果我不查询注释,则会返回带有对象的RecordArray对象.
Route返回RecordArray:
model: function() { return this.store.find('comment'); },
关键的区别在于RecordArray类型实时更新对模板的更改,而AdapterPopulatedRecordArray不是并且是不可变的.我的目标是使第一个查询中的对象实时更新和可变.
我正在使用Ember 1.2 / 1.1.2和最新金丝雀/ beta3 Ember数据与Django Rest框架Ember数据适配器.提前感谢任何建议!
解决方法
看看
Store#find works如何,this.store.find(‘comment’,{contract:1})将调用Store#findQuery.
This method returns a promise,which is resolved with a
RecordArray
once the server returns.
// #_findQuery return resolve(promise).then(function(payload) { payload = serializer.extract(store,type,payload,null,'findAll'); // ... recordArray.load(payload); return recordArray;
一旦调用了DS.AdapterPopulatedRecordArray#load,就会设置content属性,并且应该像RecordArray一样
this.setProperties({ content: Ember.A(records),isLoaded: true,Meta: Meta });
当你看到this.store.find(‘comment’,{contract:1})时,你还没有收到服务器响应吗?
原文地址:https://www.jb51.cc/js/157276.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。