【问题标题】:Ember fire filter data in controller控制器中的 Ember 火灾过滤器数据
【发布时间】:2017-09-17 10:20:02
【问题描述】:

我是 ember 新手,我在 Ember 中创建了一个任务管理器应用。我有一个任务模型,如下所示:

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'),
});

我还可以在任务列表页面中显示此模型的所有任务。但是,我目前遇到了仅过滤归档不等于 true 的任务的问题。

在我的任务列表路线中,我有这个来完成我的任务

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

但是我需要它来过滤归档等于 false 的所有任务。我这样做我在这里或我的控制器中添加这个。

更新

我已将此添加到我的控制器中:

filteredModel: Ember.computed('model', function(){
        let model = this.get('model');

        return model.filter(function(item){
            return item.data.archive == false;
        });

    }),

这种工作,所以它显示一个过滤列表但是当我向列表中添加一个新项目时,它不会用新项目更新列表。

【问题讨论】:

    标签: firebase ember.js emberfire


    【解决方案1】:

    在控制器中引入计算属性,返回过滤后的taskList,

    notArchivedTask: Ember.computed.filterBy('model','archive',false)
    

    【讨论】:

    • 我将它添加到我的控制器并更新了我的每个循环以将 notArchivedTask 合并为模型,但是,显示的视图根本没有数据
    • 在您更新的代码中,您需要包含依赖键 model.[] 以便重新计算每个添加/删除项目。
    • 你能在答案中证明
    • 您可以参考this answer及其旋转链接
    • 你是如何更新模型的?使用set 方法,才会重新计算计算属性
    猜你喜欢
    • 2013-10-22
    • 2015-11-16
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多