我想在事件中更改数据上下文中的变量。这就是我的尝试:
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
以及text
和message
。但是视图没有更新,为什么会这样?
编辑:
我可以这样做Items.update(this._id, {$set: {selected: !this.selected}});
但实际上我并不想把它放在数据库中...是不是可以添加到数据上下文中?
答案 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');
}
});