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