本を読んで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}});
});