控制器中的 Ember 火灾过滤器数据
Posted
技术标签:
【中文标题】控制器中的 Ember 火灾过滤器数据【英文标题】:Ember fire filter data in controller 【发布时间】: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;
);
),
这种工作,所以它显示一个过滤列表但是当我向列表中添加一个新项目时,它不会用新项目更新列表。
【问题讨论】:
【参考方案1】:在控制器中引入计算属性,返回过滤后的taskList,
notArchivedTask: Ember.computed.filterBy('model','archive',false)
【讨论】:
我将它添加到我的控制器并更新了我的每个循环以将 notArchivedTask 合并为模型,但是,显示的视图根本没有数据 在您更新的代码中,您需要包含依赖键model.[]
以便重新计算每个添加/删除项目。
你能在答案中证明
您可以参考this answer及其旋转链接
你是如何更新模型的?使用set
方法,才会重新计算计算属性以上是关于控制器中的 Ember 火灾过滤器数据的主要内容,如果未能解决你的问题,请参考以下文章