重新加载余烬模型

时间:2017-09-17 12:21:37

标签: ember.js ember-data emberfire

您好我有点困惑ember如何工作,我有一个我正在创建的应用程序,它列出了特定用户的任务。这是我的模特:

&a[0] = &b[0];

这是我在任务列表中添加任务的时候。然而,当我在我的任务列表中获得所有任务时,我在我的路线中使用它:

import DS from 'ember-data';

export default DS.Model.extend({
    title: DS.attr('string'),
    location: DS.attr('string'),
    date: DS.attr('date'),
    archive: DS.attr('boolean'),
    user: DS.attr('string'),
});

为了过滤所有用户的任务,我将其添加到我的控制器中:

model: function () {    
        return this.store.findAll('task');   
    }

所有这一切都很好。但是,当我向任务列表添加新任务时,它不会更新我的任务列表,所以我必须重新加载我的页面。这可以自动完成,而无需刷新我的页面吗?

1 个答案:

答案 0 :(得分:1)

findAll返回的数组是一个实时数组,它将始终包含商店中的所有记录。但是,您的CP具有错误的依赖关键字。依赖关键字应该包含.[].@each.?,或者它不会监听数组更改。因为您使用user属性,所以它应该是model.@each.user。您也可以将当前用户添加到依赖关系密钥。

最后您的CP根本无法工作,因为过滤器函数中的this是过滤器函数的this,而不是Controller。您应该使用箭头功能或将this保存到变量。

同样item.data.user似乎错了,可能应该是item.get('user')

所以最终的CP是:

filteredModel: Ember.computed('model.@each.user', 'session.user.email', function(){
    return this.get('model')
        .filter(item => item.get('user') == this.get('session.user.email'));
}),