我指的是这个例子
http://emberjs.com/examples/todos/
在代码中,他们通过过滤然后从集合中删除来清除列表
clearCompletedTodos: function() {
this.filterProperty('isDone', true).forEach(this.removeObject, this);
},
假设我希望应用相同的过滤器,但我想切换而不是删除。换句话说,某种类型的“隐藏完成”按钮。如果选中它将隐藏所有已完成的任务。如果未选中,它将显示所有已完成的任务。我该怎么做?
答案 0 :(得分:4)
您可以沿着这一行创建内容,请参阅http://jsfiddle.net/pangratz666/rufjC/
<强>车把强>:
{{#each todos}}
{{#view App.TodoView todoBinding="this" }}
{{view Ember.Checkbox valueBinding="todo.isDone" titleBinding="todo.label" }}
{{/view}}
{{/each}}
<强>的JavaScript 强>:
App.TodoView = Ember.View.extend({
hideTodosBinding: 'App.hideTodos',
isDoneBinding: 'todo.isDone',
isVisible: function(){
return !(this.get('hideTodos') && this.get('isDone'));
}.property('hideTodos', 'isDone').cacheable()
});