我有一个包含任务的模型,我希望按状态过滤数据并在不同的列表中显示结果。
所以我的结构确实无法正常工作。
tasks: Ember.computed(function(){
var modelTasks = this.get('store').findAll('task');
return {
todo: modelTasks.filterBy('status', 'todo'),
inProgress: modelTasks.filterBy('status', 'inprogress'),
done: modelTasks.filterBy('status', 'done')
};
}),
我是新人,所以请宽容。
答案 0 :(得分:1)
为什么需要tasks
计算属性?
findAll
返回Promise,因此您的代码不正确。
异步计算属性有点棘手 - 请阅读this ignite article以获取更多信息。
我想说,数据提取应该发生在路由级别,所以你可以编写相应的路由js文件model
钩子,
export default Ember.Route.extend({
model() {
return this.get('store').findAll('task').then((result) => {
return {
todo: result.filterBy('status', 'todo'),
inProgress: result.filterBy('status', 'inprogress'),
done: result.filterBy('status', 'done')
};
});
}
});
在相应的hbs文件中,您可以像model.todo