1

私はこの例を参照しています

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

コードでは、フィルタリングしてコレクションから削除することでリストをクリアします

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

同じフィルターを適用したいが、削除するのではなく切り替えたいとします。言い換えれば、ある種の「HideDone」ボタンです。チェックすると、実行されたすべてのタスクが非表示になります。チェックを外すと、実行されたすべてのタスクが表示されます。どうすればいいですか?

4

1 に答える 1

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()
});
于 2012-04-18T08:48:55.230 に答える