Ember-Data:元数据不会立即刷新新的服务器响应?

时间:2014-09-23 13:59:41

标签: ember.js ember-data

编辑:我改变了一些事情,看它是否会解决..但没有运气

情况:

我有一个显示帐户列表的父路线。该列表是分页的服务器端,我使用refresh()向服务器发送新查询...

model: function() {
    return this.store.find('account', { page_size: this.page_size, page_number: this.page_number });
},

setupController: function(controller, model) {
    this._super(controller, model);
    controller.set('meta', this.store.metadataFor('account'));
}

父路线通过动态段呈现具有显示单个帐户的子路线的商店。

问题:

首次输入路线时,元数据会显示正确的值。但是,当模型钩子重新触发时,模型本身会使用新的服务器响应进行更新,但元数据不会更新!它保持在初始值。

这是违反直觉的,因为我认为元数据的重点是允许服务器端分页?

可能的原因?

除了沮丧之外,我有一种感觉,也许我已经创造了这个问题,但不知道如何解决或解决问题。

我有一个端点返回一个帐户列表,我有一个单独的端点返回一个帐户。因为两个端点都返回JSON以及定义帐户的所有相同字段,所以我让它们共享相同的模型类。然而,差异在于"单一帐户"端点不会在其响应中返回分页数据,而" list"终点确实。

我不知道这是否是冲突的原因,但如果是的话,我不知道如何修复它。

另一种可能性是它是一个难以捉摸的错误?

如果有其他人遇到过这个问题,或者我做错了什么,请告诉我。

1 个答案:

答案 0 :(得分:2)

您可以将meta定义为控制器上的计算属性:

meta: Ember.computed('model.isFulffiled', function() {
    return this.store.metadataFor('foo')
})

这应该让你工作。