我有一个看起来像这样的用户配置文件架构:
Schema.UserProfile = new SimpleSchema({
name: {
type: String,
optional: false
},
gender: {
type: String,
optional: false,
allowedValues: ['Male', 'Female']
},
location: {
type: String,
optional: false
},
age: {
type: Number,
optional: false
}
}
我的注册表要求用户在上面选择他们的性别。注册后,用户会看到另一个表单来填写其余数据:姓名、位置和年龄。
问题是:当用户尝试注册时,我收到错误:Name is required
. 用户在注册之前不应该输入他们的名字。
仅验证实际保存在特定表单上的数据的正确方法是什么?
编辑
这是我的注册脚本:
var data = {};
var profile = {};
data.email = $('#email').val();
data.password = $('#password').val();
profile.gender = $('#gender').val();
data.profile = profile;
Accounts.createUser(data, function (error) {
// do
// ERROR: Name is required
});
当用户实际注册时,他们会看到一个表单来填写其他数据。表单提交会调用一个方法,该方法会尝试更新配置文件对象。