简体   繁体   中英

How to match custom template to schema in Meteor AutoForm?

In this minimal example I have two schemas, one for a Person and another called Groups that defines a collection. Using AutoForm, I want to apply a custom template to any occurrence of PersonSchema , regardless of the parent schema.

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
    }
}));

I understand that I can attach a template to the AutoForm via the template attribute as well as some additional classes like so:

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

How can I create a template for just the Person section of the form?

According to the Meteor AutoForm documentation , bootstrap3-horizontal can be used with afFormGroup , afQuickField or quickForm only. So, if you want to use template="bootstrap3-horizontal" just for the PersonSchema section in your form, you will need to set the template attribute for the appropriate afQuickField .

For example:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM