我正在通过一本书来学习 Meteor,现在我们想要insert()
的userId
是当前登录的用户。
Template.categories.events({
'keyup #add-category': function(e, t) {
if(e.which == 13) {
var catVal = String(e.target.value || "");
if(catVal) {
lists.insert({Category: catVal, owner: this.userId});
console.log(this.userId);
Session.set('adding_category',false);
}
}
},
但是this.userId
未定义,因此insert()
没有按预期工作。让这个工作缺少什么?
它以某种方式在下面的代码中工作(userId
已定义):
lists.allow({
insert: function(userId, doc) {
return adminUser(userId);
},
update: function(userId, docs, fields, modifier) {
return adminUser(userId);
},
remove: function(userId, docs) {
return adminUser(userId);
}
});
更新
为什么在服务器端this.userId
有效但无效Meteor.userId()
?
Meteor.publish("Categories", function() {
return lists.find({owner:this.userId}, {fields:{Category:1}});
});