Meteor with ViewModel软件包未跨多个子模板更新accross
我是meteor的新手,对正在发生的事情有一个基本的了解,但我坚持使用这个例子(问题已尽可能简化): 我有一个模板和一个子模板:Meteor with ViewModel软件包未跨多个子模板更新accross,meteor,Meteor,我是meteor的新手,对正在发生的事情有一个基本的了解,但我坚持使用这个例子(问题已尽可能简化): 我有一个模板和一个子模板: <template name="test"> {{#each items}} {{> testItem}} {{/each}} {{#each items}} {{> testItem}} {{/each}} </template> <template name="t
<template name="test">
{{#each items}}
{{> testItem}}
{{/each}}
{{#each items}}
{{> testItem}}
{{/each}}
</template>
<template name="testItem">
<div {{ b "click: toggle"}}>{{value}}</div>
</template>
Template.test.viewmodel({
items: [],
onCreated: function() {
this.items().push({ value: 'test' });
}
})
Template.testItem.viewmodel({
toggle: function() {
this.value("changed");
}
});
谢谢 您是对的,当您执行
此.value(“已更改”)代码>您正在更改testItem视图模型的值,而不是父数组的值。如果要修改数组中对象的属性,我强烈建议您使用客户端Mongo集合。这会帮你省去很多麻烦
Items = new Mongo.Collection(null);
Template.test.viewmodel({
items: function() {
return Items.find();
},
onCreated: function() {
Items.insert({ _id: "1", value: 'test' });
}
})
Template.testItem.viewmodel({
toggle: function() {
Items.update({ _id: this._id() }, { value: 'changed' });
}
});
顺便说一句,我很少这样检查。你会在网上得到更快的回复
Items = new Mongo.Collection(null);
Template.test.viewmodel({
items: function() {
return Items.find();
},
onCreated: function() {
Items.insert({ _id: "1", value: 'test' });
}
})
Template.testItem.viewmodel({
toggle: function() {
Items.update({ _id: this._id() }, { value: 'changed' });
}
});