ember-cp-validations - как отображать сообщения об ошибках, когда нет потери фокуса перед отправкой? - PullRequest
2 голосов
/ 21 июня 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...