Первый запуск NgModel с ложноположительной достоверностью - PullRequest
0 голосов
/ 22 января 2019

Я переделываю какой-то старый проект со следующим управлением на основе шаблона:

<input #ctrl="ngModel" 
type="text" 
placeholder="Nummer" 
id="num" 
minlength="6" 
maxlength="6" 
pattern="(?!0{6})[0-9]{6}" 
[(ngModel)]="datenProduct.num" 
(ngModelChange)="onNumChange(ctrl)">

И соответствующий обработчик значения:

onNumChange(ctrl: NgModel) {
    if (ctrl.valid || ctrl.pristine || ctrl.untouched || ctrl.value === '') {
        console.log('True')
        this.lvbControl.lvbEntered = true;
    } else {
        console.log('False')
        this.lvbControl.lvbEntered = false;
    }
}

По сути, требование заключается в следующем:

  • число является необязательным
  • , но если оно указано, должно быть 6-значным
  • , но если оно указано, оно не должно быть равно 000000

При первом вызове onNumChange действительность элемента управления (доступного через ctrl.valid) всегда заявляет, что элемент управления действителен, даже если он не соответствует минимальной длине и шаблонному совпадению.
Есть идеи, что происходит?

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