流星:在创建帐户上添加字段
Meteor: Adding Fields on createAccount
我正在尝试使用流星角色包:https://github.com/alanning/meteor-roles显然在用户模型中创建一个新字段。
创建用户没有问题,但我尝试定义的"角色"字段未创建。我也可以在其中添加"个人资料"和详细信息等内容。但由于某种原因,我无法制作角色字段。这是我的表格:
Template.signup.events({
'submit #signup-form' : function(e, t) {
e.preventDefault();
var roles = ['admin'],
email = t.find('#email').value,
password = t.find('#password').value;
Accounts.createUser({email: email, password : password, roles: roles}, function(err){
if (err) {
alert("User Not Added")
} else {
console.log("User Added.")
}
});
}
});
最终我需要将其发布给客户端,但现在我只想让该字段显示在 MongoDb 中,但事实并非如此。
3件事:
- 我觉得上面的代码应该可以工作,但我显然错过了一些东西
- 在包文档中,它提到了我
Roles.addUsersToRoles
试过但没有运气 - 或者,在创建记录后,我是否需要更新记录?
我确实进入了数据库并手动添加了字段和相关字符串以更新它(使用 $set(,它起作用了。但从形式本身来看,没有运气。
任何指示将不胜感激。谢谢。
Accounts.createUser
函数只允许您通过 profile
选项添加任意用户属性,这是它们最终存储在 mongo 中的位置。 这就是为什么流星忽略了你Accounts.createUser
电话的roles: roles
部分。
确实,meteor-roles
包将分配给用户的角色列表直接存储在 users 集合中,但这几乎只是一个实现细节,您可能最好坚持使用 meteor-roles
提供的用于将用户添加到角色的 API:
Roles.addUsersToRoles(<userId>,[<list of roles>])
传递给Roles.addUsersToRoles
的userId
是Accounts.createUser
在服务器上调用时返回的值,这可能是您想要执行此操作的地方,因为这感觉更安全。
Accounts.createUser
函数只接受username
、email
、password
和profile
作为用户对象的参数。请参阅此处的文档。因此,要将另一个字段添加到新的用户对象,您需要在第二步中添加它:
var uid = Accounts.createUser({email: email, password: password});
Meteor.users.update(uid, {$set: {roles: roles}});
- JS动态添加字段-删除按钮不起作用
- 向laravel表单动态添加字段
- MaskMoney.js无法处理动态添加字段
- 流星:在创建帐户上添加字段
- 使用DB值动态添加字段到Form,php
- 使用object.freeze()扩展函数对象-can't添加字段
- 在ASP.Net web窗体/MVC中动态加载和添加字段
- 如何在使用Knex.JS添加字段时捕捉错误
- KendoUI 网格:动态向数据源添加字段
- Jquery- 动态添加字段 - 防止删除最后一个项目
- JQuery 无法获取动态添加字段的值
- 扩展 Ext.data.Model(动态添加字段)
- 如何使用角度 JS 添加嵌套的添加字段
- 如何在 CKeditor 上传中向 POST 值添加字段
- 在流星中向用户集合添加字段的正确方式
- 按数组分组并在主数组中添加字段和子数组
- 如何在JavaScript中为HTML上的动态添加字段执行乘法
- 如何在javascript中为html上的动态添加字段匹配id
- 在具有嵌套属性的轨道中动态添加字段
- 使用jquery添加字段