对于那些使用Simple Schema for Meteor验证的人,我有一些问题(在使用它一段时间后):
1 SimpleSchema是否支持方括号表示法?所有示例都使用点表示法显示它。我做了以下方括号实现:
Schemas.NamesCollection = new SimpleSchema({
name: {
type: Object
},
"name[first_name]" : {
type: String,
optional: false,
label: "First Name"
},
"name[last_name]" : {
type: String,
optional: false,
label: "Last Name"
}
});
{{> afQuickField name="name[first_name]"}}
{{> afQuickField name="name[last_name]"}}
我注意到表单验证工作得很好,因为我填写了表单,但最后将数据插入到集合中失败并出现验证错误(与表单验证之前已经过去的相同的错误但是现在插入失败了。)
很明显,有很多理由使用方括号表示法。 Dot符号有很多限制,尽管更具可读性。
2。查看上面定义架构的示例,架构中的键必须是对象中的完整路径。您必须声明name[first_name]
为其分配架构,这意味着您不仅要定义first_name
的属性,还要定义结构物体。 first_name
有嵌套在name
内。
例如,你不能这样做
Schemas.NamesCollection = new SimpleSchema({
name: {
type: Object
},
first_name : {
type: String,
optional: false,
label: "First Name"
},
last_name : {
type: String,
optional: false,
label: "Last Name"
}
});
然后继续将first_name
和last_name
存储在name
内,是吗?