Meteor 关于流星简单模式的几个问题
对于那些使用简单模式进行Meteor验证的人,在使用了一段时间后,我有一些问题: 一,。 SimpleSchema是否支持方括号表示法?所有的例子都用点符号表示。我执行了以下方括号实现:Meteor 关于流星简单模式的几个问题,meteor,Meteor,对于那些使用简单模式进行Meteor验证的人,在使用了一段时间后,我有一些问题: 一,。 SimpleSchema是否支持方括号表示法?所有的例子都用点符号表示。我执行了以下方括号实现: Schemas.NamesCollection = new SimpleSchema({ name: { type: Object }, "name[first_name]" : { type: String, optional: false, label: "Fir
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]"}}
我注意到表单验证在我填写表单时工作得很好,但最终将数据插入到集合中失败,并出现验证错误,这与之前表单验证时传递的错误完全相同,但现在插入失败
显然,使用方括号表示法有很多原因。尽管点表示法更具可读性,但它有很多局限性
二,。查看上面定义模式的示例,模式中的键必须是对象中的完整路径。必须声明name[first_name]才能为其分配模式,这意味着您不仅要定义first_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"
}
});
然后继续在名称中存储名字和姓氏,可以吗 点表示法的局限性是什么?如何在点表示法中输入变量名?你怎么用点符号把空格放进去?@Akshat,所以你用的是方括号符号,而不是点符号。若您只能使用点表示法,因为简单模式似乎不支持括号表示法,那个么您会遇到麻烦,对吗?除非你使用方括号表示法,否则你就不能用空格来做x。我和SimpleSchema的创建者谈过。问题是Mongo只支持所有查询的点表示法,所以SimpleSchema就是这样使用的。将任何括号符号转换为点符号都是额外的代码。因此,由于SimpleSchema依赖于点表示法,因此任何形式的输入字段都需要事先使用点表示法。如果您需要对任何内容使用方括号表示法,则最终需要将其转换为点表示法支持的内容,以便创建字段名。