NoneEmber -cp-validations - как отображать сообщения об ошибках, когда нет потери фокуса перед отправкой?

Использование 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
          }
        })
    }
  }
});

Какой изящный способ сделать это? Спасибо.

0 ответов

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