如何将自定义模板与 Meteor AutoForm 中的模式匹配?

How to match custom template to schema in Meteor AutoForm?

在这个最小的示例中,我有两个模式,一个用于 Person,另一个称为 Groups,它定义了一个集合。使用 AutoForm,我想将自定义模板应用于任何出现的 PersonSchema,而不管父架构如何。

SimpleSchema.PersonSchema = new SimpleSchema({
  firstName: {
    type: String,
    optional: false,
    label: "First Name"
  },
  lastName: {
    type: String,
    optional: false,
    label: "Last Name"
  }
});

Groups = new Mongo.Collection('groups');

Groups.attachSchema(new SimpleSchema({
    name: {
        type: String,
        optional: false,
        label: "Group Name"
    },
    people: {
        type: [SimpleSchema.PersonSchema],
        minCount: 1
    }
}));

我知道我可以通过模板属性将模板附加到 AutoForm 以及一些额外的 类 像这样:

{{> quickForm id="addGroupForm" collection="Groups" type="insert" template="bootstrap3-horizontal" label-class="col-sm-3" input-col-class="col-sm-9"}}

如何只为表单的 Person 部分创建模板?

根据 Meteor AutoForm documentationbootstrap3-horizontal 只能与 afFormGroupafQuickFieldquickForm 一起使用。因此,如果您只想对表单中的 PersonSchema 部分使用 template="bootstrap3-horizontal",则需要为适当的 afQuickField.[=20= 设置 template 属性]

例如:

{{#autoForm id="addGroupForm" collection="Groups" type="insert"}}
    <fieldset>
        <legend>Add a Group</legend>
        {{> afQuickField name='name'}}
        {{> afQuickField name='people' template="bootstrap3-horizontal" label-class="col-sm-3" input-col-class="col-sm-9"}}
    </fieldset>
    <button type="submit" class="btn btn-primary">Insert</button>
{{/autoForm}}