Как проверить флажок, selectbox и radiobutton в ember-cp-validations
Я использую ember-cp-validation в приложении ember js для проверки. Я хочу проверить checkbox
, selectbox
а также radiobutton
.Не могу найти пример кода для проверки этих элементов управления.
Кто-нибудь может дать какие-либо идеи / образец о том, как проверить checkbox
, selectbox
а также radiobutton
используя плагин ember-cp-validation.
2 ответа
Я также был удивлен, не увидев пример флажка как часть ember-cp-validations
документация Вот что я закончил (работает на 3.x):
{{validated-input type='checkbox' label='I agree to the terms of use'
model=model valuePath='acceptTerms' didValidate=didValidate}}
Для этого ваш начальный validated-input
Компоненту потребуется несколько настроек:
В
template.hbs
, замените 2-ю строку:{{input type=type value=value placeholder=placeholder class='form-control' name=valuePath}}
от:
{{#if isCheckbox}} <label> {{input type=type checked=value class="form-control" name=valuePath id=(concat elementId '-name')}} {{label}} </label> {{else}} {{input type=type value=value placeholder=placeholder class='form-control' name=valuePath}} {{/if}}
В
component.js
, Добавь это:isCheckbox: Ember.computed('type', function() { return this.get('type') == "checkbox"; })
Проверьте флажок, как это:
const Validations = buildValidations({
acceptedTerms: validator("inclusion", {
allowBlank: false,
in: [true],
}),
})
ember-cp-validations
проверяет значение переменных (будь то модель, контроллер и т. д.). Пока флажок привязан к переменной с тем же именем, которое указано в валидаторе, он должен работать независимо от типа виджета. (независимо от того, связано ли значение с помощью двусторонней привязки или изменено при запуске действия)
Смотрите здесь: http://offirgolan.github.io/ember-cp-validations/docs/modules/Basic.html
Итак, пример псевдокода... Сначала определите валидации в вашем контроллере...
const Validations = buildValidations({
bar: validator('presence', true)
});
export default Ember.Component.extend(Validations, {
bar: null
})
И в своем шаблоне свяжите значение флажка со значением:
{{input type=checkbox value=bar}}