как заменить вызов функции HTML на вызов функции машинописного текста? - PullRequest
0 голосов
/ 24 сентября 2019

Вот так выглядит мой div внутри html:

<div class="form-group col">
  <label for="randomName" class="mb-1">Test</label>
  <ngb-timepicker id="randomName" name="start" [(ngModel)]="startTime"
                  [acSmallestTimeUnit]="this.smallestTimeUnit"
                  [acSmallestTimeUnitEnabled]="this.smallestTimeUnitEnabled" [spinners]="false"
                  #start="ngModel"></ngb-timepicker>
</div>

Я использую шаблонный подход для пользовательской проверки здесь.Всякий раз, когда я изменяю значение другого html-элемента, я хотел бы запустить проверку начального элемента вручную.Я делаю это с помощью метода updateValueAndValidity ().Вот так:

<select (change)="onChange(); start.control.updateValueAndValidity();" 
        id="random" class="form-control" #project name="project"
        [(ngModel)]="projectName" #project="ngModel" tabIndex="0" required>

Проблема в том, что я должен вызвать start.control.updateValueAndValidity () после onChange ().Но onChange () является асинхронным, поэтому для вызова start.control.updateValueAndValidity () после onChange () я хотел бы вызвать его в конце метода onChange (), который написан в машинописи с использованием async и await.Я хотел бы знать, как преобразовать start.control.updateValueAndValitiy () в машинописный код, чтобы я мог вызвать его там, но я действительно не знаю, как получить начальное значение.Я пробовал несколько вещей, включая document.getElementByName () и т. Д., Но пока ничего не получалось.

1 Ответ

1 голос
/ 24 сентября 2019

Самое простое решение было бы передать start на onChange и вызвать start.control.updateValueAndValidity() в пределах onChange

<select (change)="onChange(start)" 
        id="random" class="form-control" #project name="project"
        [(ngModel)]="projectName" #project="ngModel" tabIndex="0" required>
onChange(start) {
   // some async await call

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