ember.js - Ember 路由模型 AdapterPopulatedRecordArray 与 RecordArray

标签 ember.js ember-data

任何人都可以对 ember/ember-data 的内部运作给出一个提示:

在路由模型函数中,如果我使用 contract.id 值查询注释,则 AdapterPopulatedRecordArray 对象将与对象一起返回。

路由返回 AdapterPopulatedRecordArray:

model: function() {
    return this.store.find('comment', { contract: 1 });
},

但是,如果我不查询评论,则会随对象返回一个 RecordArray 对象。

路由返回 RecordArray:
model: function() {
    return this.store.find('comment');
},

关键的区别在于 RecordArray 类型会实时更新模板的更改,而 AdapterPopulatedRecordArray 不会并且是不可变的。我的目标是使第一个查询中的对象实时更新和可变。

我将 Ember 1.2/1.1.2 和 latest-canary/beta3 Ember Data 与 Django Rest Framework Ember-data Adapter 一起使用。提前感谢您的任何建议!

最佳答案

怎么看Store#find works , this.store.find('comment', { contract: 1 })将调用 Store#findQuery。

docs for #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被调用,内容属性被设置并且应该像一个 RecordArray
this.setProperties({
  content: Ember.A(records),
  isLoaded: true,
  meta: meta
});

当您查看 this.store.find('comment', { contract: 1 }) 时,您是否还没有收到服务器响应? ?

关于ember.js - Ember 路由模型 AdapterPopulatedRecordArray 与 RecordArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194169/

相关文章:

Ember.js:如何将模型同步到与默认 namespace 不同的 namespace

ember.js - 了解用于重定向的 Ember Route Hook

javascript - 使用助手渲染 Ember View

Ember.js:如何从 App 对象访问商店

ember.js - 编译 Ember 数据

ember.js - 通过链接查询异步 hasMany 中的参数

javascript - 在 Ember.js 中获取路由列表

ember.js - Ember Handlebars 助手可以观察全局对象的属性吗?

javascript - 如何在我的 Ember 应用程序中包含 CLDR.js 库?

javascript - Ember-data DS.Model 中的私有(private)变量