Использование ember-cp-validations обычно включает проверку каждого свойства, поскольку соответствующий элемент формы теряет фокус. Если проверка не пройдена, отображается сообщение об ошибке.
<div class="form-group">
<label class="control-label">Name</label>
<div class="">
{{ input type="text"
value=item.name
class="form-control"
placeholder="The name of the Guest"
focus-out=(action (mut nameError) true)
}}
</div>
{{#if nameError}}
<div class="text-danger">
{{v-get item 'name' 'message'}}
</div>
{{/if}}
</div>
Это подход, продемонстрированный в онлайн-демонстрации (https://embermap.com/video/ember-cp-validations), однако, если пользователь вводит форму и сразу же нажимает кнопку, которая отправляет форму, сообщения никогда не отображаются (поскольку фокусировка никогда не срабатывает) .
В продемонстрированном подходе используется объект, возвращенный validate (), что вполне нормально, но в этом случае я хотел бы получить способ запустить проверку всех элементов формы, чтобы отображались сообщения об ошибках (что-то, что нужно поместить, где "вызвать все проверки ... "показано ниже).
export default Component.extend({
actions:{
buttonClicked(theguest) {
theguest.validate()
.then(({ validations }) => {
if(validations.get('isValid'))
{
this.sendAction('action', theguest);
}
else
{
//Invoke all validations in order that
//any which fail validation will show
//their error message
}
})
}
}
});
Какой изящный способ сделать это? Спасибо.