在Ember Todo示例中,我如何切换而不是删除待办事项?

时间:2012-04-17 23:09:34

标签: javascript ember.js

我指的是这个例子

http://emberjs.com/examples/todos/

在代码中,他们通过过滤然后从集合中删除来清除列表

clearCompletedTodos: function() {
    this.filterProperty('isDone', true).forEach(this.removeObject, this);
  },

假设我希望应用相同的过滤器,但我想切换而不是删除。换句话说,某种类型的“隐藏完成”按钮。如果选中它将隐藏所有已完成的任务。如果未选中,它将显示所有已完成的任务。我该怎么做?

1 个答案:

答案 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()
});