TS / JS разрывает итерационную функцию с циклом for внутри - PullRequest
0 голосов
/ 06 сентября 2018

У меня проблема с прерыванием итеративного цикла и возвращением false, если условие было выполнено.

На самом деле я пытаюсь проверить, не заполнена ли реактивная форма:

 public isEmpty(form: AbstractControl): boolean {
    if (form instanceof FormGroup) {
      for (const key of Object.keys(form.controls)) {
        if (key !== 'modalite') {
          const control = form.get(key);
          if (control instanceof FormGroup) {
            this.isEmpty2(control);
          } else {
            if (control.value && control.value !== '') {
              return false;
            }
          }
        }
      }
    } else {
      if (form.value && form.value !== '') {
        return false;
      }
    }

    return true;
  }

Проблема в том, что мой возврат false прерывает цикл for, но продолжает повторяться после него, поэтому я всегда возвращаю true. Что я хочу сделать, так это то, что если один formcontrol не пуст, я хочу вернуть false и разорвать цикл for и итеративную функцию. Спасибо.

1 Ответ

0 голосов
/ 06 сентября 2018

Я думаю, было бы лучше использовать обязательный валидатор, а не перебирать элементы управления.

const control = new FormControl('', Validators.required);
console.log(control.value);      // ''
console.log(control.status);     // 'INVALID'

См .: https://angular.io/api/forms/FormControl

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