我想将此调用作为方法编写:Posts.update(this._id, { $set: { status: 'accepted' }})
Meteor.methods({
...
updatePost: function(id, key, value) {
Posts.update(id, { $set: { key: value }});
}
})
Meteor.call('updatePost', this._id, 'status', 'accepted')
不起作用。我猜是因为'status'
?我怎么能让这个工作?感谢。
答案 0 :(得分:2)
我怀疑它不起作用,因为你不能在JavaScript对象文字中使用变量名作为键。您需要使用括号表示法。试一试:
Meteor.methods({
updatePost: function(id, key, value) {
check(id, String);
check(key, String);
check(value, String);
var obj = {};
obj[key] = value;
return Posts.update(id, {$set: obj});
}
});
答案 1 :(得分:1)
变量不能在javascript中定义为键。这样的事情可以做到这一点:
var update = {};
update[key] = value;
Posts.update(id, { $set: update });