如何让您的模型与{{#each}}块保持同步?

时间:2014-10-08 18:54:38

标签: meteor meteor-blaze

我有这样的事情:

Template.todoList.helpers({
    todos: function() {
        return Todos.find({}); // Returns records with a todoText, ownerId and done field.
    }
});

然后在模板中我使用{{#each}}块来列出待办事项。但我希望能够通过复选框更改done。如果我只是在{{#each}}块中添加这样的复选框,它将正确显示初始状态,但如果我切换复选框,则记录将不会更新。我需要跟踪记录的_id,但我会在哪里存储它?如果我能掌握正确的_id,其余部分非常简单:

Template.todoList.events({
    'change .doneCheckbox': function(event) {
        var todoId = ??;
        Todos.update(todoId, {$set: {done:event.target.checked}}); 
    }
});

我会在??

的地方插入什么内容?

1 个答案:

答案 0 :(得分:0)

应该可以从this(更具体地说是this._id)获得:

var todo = this,
    todoID = todo._id;

您也可以从记录中访问其他属性(例如this.done)。