在这个最小的示例中,我有两个模式,一个用于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
    }
}));

我知道可以通过template属性以及一些其他类将模板附加到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一起使用。因此,如果您只想在表单中的template="bootstrap3-horizontal"部分使用PersonSchema,则需要为相应的template设置afQuickField属性。

例如:

{{#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}}

10-02 12:42