我有一个Ember应用程序,它在表格中显示借来的文章列表。一个表格单元格有一个选择助手,它可以“借用”或“返回”作为值。
我还有一个复选框,通过查询参数触发返回项目的显示。
当我将复选框设置为不显示退回的项目并将一个项目从“借用”设置为“已退回”时,文章将保持可见。
所以我要做的就是重新加载带有状态变化的'filteredResults'。
我读到了关于Ember.observer但我不确定这是否正确。
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['showReturned'],
showReturned: false,
possibleStates: ['borrowed', 'returned'],
filteredResults: Ember.computed('showReturned', 'model', function() {
const articles = this.get('model');
if (this.get('showReturned')) {
return articles;
} else {
return articles.filterBy('state', 'borrowed');
}
})
});
答案 0 :(得分:0)
您需要使用state
观看每个model
上的model.@each.state
属性。
filteredResults: Ember.computed('showReturned', 'model.@each.state', function() {
const articles = this.get('model');
if (this.get('showReturned')) {
return articles;
} else {
return articles.filterBy('state', 'borrowed');
}
})
同样,如果您只想观察是否有任何文章被创建或销毁,您可以观看数组 - 'model.[]'
。
您想要Ember.computed
(doc),因为您将结果作为属性使用。如果每次更改其中一个状态(例如自动保存模型)时,您都会使用Ember.observer
(doc)。