我试图创建一个包含个人资料表单的页面。所以我有一个名字的文本框'字段和添加它的按钮。
所以在我的客户端代码中我有:
Template.profile.events({
'click input.add': function () {
Meteor.users.update({_id: this._id}, { $set:{"profile.name": profile_firstname}} )
}
});
在我的模板中我有:
<template name="profile">
{{#if currentUser}}
<div class="profile">
<h2>Profile</h2>
<input type="text" id="profile_firstname" />
<input type="button" class="add" value="Update Profile" />
</div>
{{/if}}
</template>
当我尝试在控制台上找到用户时,我找不到个人资料。我还需要做些什么来实现这个目标?
答案 0 :(得分:1)
尝试使用Meteor.userId()
而不是this._id
。
Template.profile.events({
'click input.add': function (e, t) {
var firstname = t.$('#profile_firstname').val();
Meteor.users.update({_id: Meteor.userId()}, { $set:{"profile.name": firstname}} );
}
});
在点击处理程序中,this
指的是模板输入元素的数据上下文。或者,您也可以使用#with
设置上下文,原始代码也可以使用。
<template name="profile">
{{#if currentUser}}
<div class="profile">
<h2>Profile</h2>
{{#with currentUser}}
<input type="text" id="profile_firstname" />
<input type="button" class="add" value="Update Profile" />
{{/with}}
</div>
{{/if}}
</template>