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