Установите флажок mat программным способом getElementById - PullRequest
0 голосов
/ 28 мая 2019

Я хотел бы вызвать событие click в ngAfterContentInit ().

Запустив код ниже, я получил ошибку:

ERROR TypeError: Cannot read property 'click' of null

Поскольку я использую NgFor, чтобы распечатать все флажки,

Боюсь, я не могу использовать метод - ViewChild для достижения своей цели.

Компонент:

<div *ngFor="let item of NationlityList.NationlityList; let i = index">
  <div *ngIf="i % 6 == 0" class="row">
      <mat-checkbox id="{{'Id'+i}}" *ngIf="i + 0 < NationlityList.NationlityList.length" (change)="onCheckboxChecked($event, NationlityList.NationlityList[i].Nationality)"> {{ NationlityList.NationlityList[i].Nationality }} </mat-checkbox>
      <mat-checkbox id="{{'Id'+(i+1)}}" *ngIf="i + 1 < NationlityList.NationlityList.length" (change)="onCheckboxChecked($event, NationlityList.NationlityList[i+1].Nationality)"> {{ NationlityList.NationlityList[i+1].Nationality }} </mat-checkbox>
  </div>
</div>

TS:

ngAfterContentInit() {
if (this.passedData.SelectedNationlity[0] !== 'All') {
  let element: HTMLElement = document.getElementById('Id21');
  element.click();
  }
}

1 Ответ

1 голос
/ 28 мая 2019

Вы можете сделать это:

document.getElementById('checkboxID').setAttribute('checked','true')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...