Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 关于流星简单模式的几个问题_Meteor - Fatal编程技术网

Meteor 关于流星简单模式的几个问题

Meteor 关于流星简单模式的几个问题,meteor,Meteor,对于那些使用简单模式进行Meteor验证的人,在使用了一段时间后,我有一些问题: 一,。 SimpleSchema是否支持方括号表示法?所有的例子都用点符号表示。我执行了以下方括号实现: Schemas.NamesCollection = new SimpleSchema({ name: { type: Object }, "name[first_name]" : { type: String, optional: false, label: "Fir

对于那些使用简单模式进行Meteor验证的人,在使用了一段时间后,我有一些问题:

一,。 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]"}}
我注意到表单验证在我填写表单时工作得很好,但最终将数据插入到集合中失败,并出现验证错误,这与之前表单验证时传递的错误完全相同,但现在插入失败

显然,使用方括号表示法有很多原因。尽管点表示法更具可读性,但它有很多局限性

二,。查看上面定义模式的示例,模式中的键必须是对象中的完整路径。必须声明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依赖于点表示法,因此任何形式的输入字段都需要事先使用点表示法。如果您需要对任何内容使用方括号表示法,则最终需要将其转换为点表示法支持的内容,以便创建字段名。