我的页面基本上是div元素的行。我从数组创建这些div元素。数组中的每个对象都是一个具有密钥用户名的映射。这是
的一个例子{{#each rows}}
<div class="col-md-1 poolbox">{{this.username}}</div>
{{/each}}
当页面加载时,它会成功获取this.username的值。我在该div上有一个click事件,所以当它被点击时,我在mongo中创建一个文档,并且还想将map中的值更新为新值。
'click .divbox': function(e, t) {
//alert("You Clicked " + JSON.stringify(this));
Box.insert({
username: 'NEW VALUE',
createdAt: new Date()
});
一旦将其推送到数据库,我想将地图中用户名的值更新为新值,该值应该有效地更改UI中的值。我试过这样做。用户名=&#34;新值&#34 ;;在我把它推到DB之后但是没有用。
最终我想做pub / sub,以便它始终从数据库中提取。
答案 0 :(得分:0)
您实际上可以更改值,只需在行数组中添加一个帮助器,并检查用户名是否已更改。
实施例
<强> JS 强>
Template.home.helpers({
rows : function(){
var rows = [{username :'abc'},{username :'abd'},{username :'ab'}];
_.each(rows,function(value,key) {
if(Box.find({old_username : value.username}).count() > 0){
rows[key].username = Box.find({old_username : value.username}).fetch()[0].username;
}
})
return rows;
}
})
Template.home.events({
'click .poolbox': function(e, t) {
var current_username = 'NEW VALUE';
Box.insert({
username: current_username,
old_username : $(e.currentTarget).text(),
createdAt: new Date()
});
}
})
并在你的HTML中
{{#each rows}}
<div class="col-md-1 poolbox">{{username}}</div>
{{/each}}