编辑:我改变了一些事情,看它是否会解决..但没有运气
情况:
我有一个显示帐户列表的父路线。该列表是分页的服务器端,我使用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"终点确实。
我不知道这是否是冲突的原因,但如果是的话,我不知道如何修复它。
另一种可能性是它是一个难以捉摸的错误?
如果有其他人遇到过这个问题,或者我做错了什么,请告诉我。
答案 0 :(得分:2)
您可以将meta定义为控制器上的计算属性:
meta: Ember.computed('model.isFulffiled', function() {
return this.store.metadataFor('foo')
})
这应该让你工作。