Meteor AutoForm установите необязательное поле для заполнения

У меня есть следующая (упрощенная) SimpleSchema:

EventSchema = new SimpleSchema({
    eventType: {
        type: String
    },
    kicker: {
        type: String
    },
    kicker2: {
        type: String,
        optional: true
    }
});

При этом я использую AutoForm для создания формы вставки. Вот упрощенная версия этого:

{{#autoForm schema="EventSchema" type="method" meteormethod="addEvent"}}
    {{> afFieldInput name="eventType" options=getSubstitutionEventTypes type="select-radio-inline"}}

    {{> afFieldInput name="kicker" type="select" options=this}}

    {{> afFieldInput name="kicker2" type="select" options=this}}
{{/autoForm}}

Поскольку я использую эту схему в другой автоформе, где мне не нужно вводить "kicker2", я установил это поле как необязательное. Но в упомянутой выше форме это поле обязательно для заполнения. Итак, как я могу переопределить необязательный параметр для поля в определенной форме?

Я уже попробовал следующее, но это не сработало (обязательно не отображается в HTML):

{{> afFieldInput name="kicker2" type="select" options=this required="required"}}

Заранее спасибо!

1 ответ

У вас есть несколько приемов, чтобы иметь необязательное значение в зависимости от ситуации. Хорошим было бы установить необязательное значение при возврате функции, давая что-то вроде этого:

EventSchema = new SimpleSchema({
    eventType: {
        type: String
    },
    kicker: {
        type: String
    },
    kicker2: {
        type: String,
        optional: function() {
            return (! this.isInsert)
        }
    }
});

Так что это необязательно при обновлении, но не при вставке (вы можете использовать любые средства для его настройки). Другой способ иметь разные правила проверки правильности форм - просто создать специальную схему для данной формы и затем autoForm(schema=yourSpecificSchema ... вместо autoForm(collection="Meteor.users", Не забудьте зарегистрировать помощника, чтобы ваша схема была доступна из вашей формы. Вы можете обратиться к официальной документации для более подробной информации: https://github.com/aldeed/meteor-autoform

Другие вопросы по тегам