Событие нажатия триггера динамически в angular 8 - PullRequest
0 голосов
/ 19 июня 2020

Пытался вызвать событие щелчка для ссылки на элемент на основе индекса, но не работает в angular 8. Если кто-нибудь знает, помогите найти решение.

app.component. html:

        <div class="st-item" *ngFor="let data of datalist; let i = index">
            <input type="radio" name="st" id="{{data.name}}" />
            <label for="{{data.name}}" #items (click)="showproduct(data.name)">
                <span>
                    {{data.display}}
                </span>
            </label>
        </div>

app.component.ts:

  @ViewChildren('items') liItems: QueryList<ElementRef>

  ngOnInit(){ 
    const indexItem = 2; 
    this.liItems.forEach((item, index) => {
      if (index === (indexItem - 1)) (item.nativeElement as HTMLElement).click();
    }); 
  }

console.log (this.liItems); введите описание изображения здесь

1 Ответ

0 голосов
/ 21 июня 2020

Если вы не получили никаких ошибок в консоли, то я не знаю, что произошло, но я вижу две ошибки:

  • ngOnInit вызывается непосредственно после инициализации компонента но просмотр не всегда завершается до этого вызова. В этом случае вы должны попробовать ngAfterViewInit или ngAfterContentInit, чтобы убедиться, что ngFor и весь вид визуализируется. Вы не сказали, где вы позвонили console.log(this.liItems), но в этом случае вызвать его в ngOnInit и получить что-либо, кроме undefined, было бы странно
  • В случае, если вы получили ExpressionChangedAfterItHasBeenCheckedError, попробуйте инкапсулировать свой код в setTimeout function

Сообщите мне, появятся ли новые ошибки или вы не справились. Удачи!

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