添加当前用户配置文件metro.js的文档
Add document for current user profile meteor.js
我想创建一个表单,为注册用户添加额外的配置文件详细信息(地址、电话号码)。这是我的js文件:
Template.userProfileEdit.events({
'submit form': function(event, template){
event.preventDefault();
var addressVar = template.find('#inputaddress');
var profile = {};
var fields = template.findAll('input[type="text"]');
for(var i = 0; i<fields.length; i++) {
profile[$(fields[i]).attr('name')] = $(fields[i]).val();
}
if(Meteor.users.update(Meteor.userId(), {$set: {profile: profile}})) {
$(template.find('#thirdNodal')).modal('hide');
}
}
});
Template.userProfileEdit.helpers({
address: function(){
return Meteor.user().profile.address;
}
});
Accounts.findUserByUsername = function (username) {
return Accounts.findUserByQuery({
username: username
});
};
Accounts.findUserByEmail = function (email) {
return Accounts.findUserByQuery({
email: email
});
};
这是我的html表单:
<tr>
<td>Address</td>
<td>{{currentUser.profile.address}}</td>
</tr>
有人知道如何插入(地址)并更新它的最简单方法吗?还是可以?
这离一个有效的解决方案不远了,但我看到了一些问题。
Meteor.users.update(Meteor.userId(), {$set: {profile: profile}})
将覆盖配置文件对象,擦除已经存储在那里的任何内容。此外,授予用户客户端更新用户文档的权限是一场等待发生的安全灾难。理想情况下,您应该调用位于服务器文件夹中的流星方法,这样您就可以通过验证服务器上的更改来保持严格的权限。
其次,如果您使用流星的模板系统(blaze),那么您几乎不需要使用jQuery选择器来检索值。相反,您可以查找HTML表单,以便在单击提交按钮时使用模板事件轻松访问表单字段。
你应该完成流星教程,它将为你提供所有这些信息和更多。
相关文章:
- JS触发器值检查在文档加载后添加到页面的元素在加载时更改AND
- 将jQuery.js文件附加到html文档中
- node.js使用monk从数组中按id获取文档
- 显示“<script src='some.js'></脚本>"在Html文档中
- 如何通过JS在不干扰其标记的情况下更改HTML文档中字符串的所有实例
- 使用公共JS文档优化静态网站的CSS/JS导入
- 将多级 mongodb 文档转换为 Backbone.js 模型/集合
- 为什么在 React 中.js文档(“教程”部分)描述了运行服务器的必要性
- 有没有办法在JS文档中定义泛型类型
- js文档排序不起作用
- 浏览器中的PHP/JS文档查看器
- 一个js文件或多个js文档
- JS -文档.createElement不起作用
- 在.js文档中添加onclick和其他代码
- Node.js:文档返回undefined -猫鼬
- 检查JS文档的工具
- 原型JS:文档.观察火灾&;undefined不是一个函数&;错误
- Node.js文档没有定义
- 通过点击HTML/JS文档中的图像加载视频
- 用于REST API服务器的Hapi.js文档生成器