所以我有这样的配额模型:
export default DS.model.extend({
quota : DS.attr('number'),
sellerId: DS.attr('string'),
buyerId:DS.attr('string') });
我已经为动态段分配了配置路线,如下所示:
this.route('assignQuota', {path:'/assignQuota/:buyer_id'}
并在assignQuota.js中:
export default Ember.Route.extend({
model(params) {
const sellerId = this.get("session").get("uid");
return this.store.query('quota',{
orderBy:'buyerId',
equalTo: params.buyer_id
}).then(function(quota){
return quota.filterBy('sellerId',sellerId)
});
}
});
在我的模板(简化)中是这样的:
{{#each model as |quota|}}
{{quota.quota}}
{{/each}}
它有效但如果有人在配额模型中添加数据或删除数据,则列表不会在模板中自动更新。
模板仅在刷新浏览器后刷新。有趣的是,如果我使用ember检查器检查数据的配额,它表明如果有人更改模型但模板没有反映更改,模型已经更改。
请帮助
感谢
答案 0 :(得分:2)
问题在于,您如何transitionTo
到assignQuota
路由,如果您将model
传递给动态细分,那么它将跳过调用model
挂钩它将呈现相同的model
数据。
答案 1 :(得分:0)
原因是模型没有观察到变化。
创建一个计算属性并使其观察者更改模型的更改,然后使用计算值创建一个列表(您的each
循环)。
quotaList: Ember.computed('model.[]', function() {
// Your update logic here
// return the new value
})