事件中的流星变化数据上下文变量

时间:2015-05-03 19:42:40

标签: meteor

我想在事件中更改数据上下文中的变量。这就是我的尝试:

Template.item.events({
    "click .item": function (event) {
        this.selected = !this.selected;
    }
});

<template name="item">
    <div class="item {{#if selected}}selected{{/if}}">{{text}}  <span class="small">{{message}} - {{createdAt}}</span></div>
</template>

当我调试时,我会在数据上下文中获得字段selected以及textmessage。但是视图没有更新,为什么会这样?

编辑:

我可以这样做Items.update(this._id, {$set: {selected: !this.selected}}); 但实际上我并不想把它放在数据库中...是不是可以添加到数据上下文中?

2 个答案:

答案 0 :(得分:1)

我认为这是一种更好的方法:

var readline = require('readline');

process.stdin.on("data", function(input){
    var fn = input.toString().trim();
    var command = fn.split(' ')[0];
    var args = fn.substr(fn.indexOf(' ') + 1);
    if (command == "foo"){
        console.log(args);
    }
});

答案 1 :(得分:0)

如果您不希望将其存储在数据库中,我认为没有理由使用反应性或更新数据上下文变量...... 你可以像这样使用基本的DOM操作:

Template.item.events({
    "click .item": function (event) {
        $('.item').removeClass('selected');
        $(event.target).closest('.item').addClass('selected');
    }
});