Событие Angular 5 из кода с помощью ViewChild - PullRequest
0 голосов
/ 26 июня 2018

Возможно ли в Angular вызвать событие изменения, определенное в HTML, с помощью метода в машинописи?

Я хватаю свой селектор через ViewChild.

@ViewChild('org3') org3Selector: HTMLSelectElement;

и для этого элемента установлено change событие:

<select class="form-control" id="orgLevel3" name="orgLevel3" #org3
        (change)="onOrg3Change($event.target.value, org4, org5)">
    <option>-- Select --</option>
    <option *ngFor="let name of validOrgLevel3" value="{{name.id}}">
        {{name.name}}
    </option>
</select>

, где org4 и org5 - это просто два других элемента выбора.

Если я хочу, чтобы этот метод вызывался на основе того, что я сделал с помощью кода (например, изменил вручную значение, которое будет иметь выделение). Должен ли я каким-то образом «вызывать» это событие, или мой код просто вручную вызывает onOrg3Change метод, так как у меня есть ссылки на выбранный элемент?

1 Ответ

0 голосов
/ 26 июня 2018

Вам нужно вручную вызвать событие, как только значение будет изменено. Angular не знает, изменяется ли значение какого-либо элемента html из кода (что означает не взаимодействие)

Вы можете создать событие следующим образом:

@ViewChild('org3') org3: ElementRef;

this.org3.nativeElement.value = 'two';
this.org3.nativeElement.dispatchEvent(new Event('change'));

См. Это просто демо

...