Angular получить установленное значение флажка return undefined - PullRequest
1 голос
/ 30 мая 2020

Я использую angular с ioni c, но я не могу проверить отмеченные элементы.

HTML:

<div *ngIf="phones.length > 0">
  <ion-item *ngFor="let phone of phones">
    <ion-label>{{phone.name}}</ion-label>
    <ion-checkbox color="dark" (ionChange)="selectMember(phone.id)" [(ngModel)]="phone.isChecked"></ion-checkbox>
  </ion-item>
</div>

Скрипт:

selectedArray: any = []; // should be array of selected items

selectMember(data, isChecked: boolean) {
  console.log(isChecked); //undefined
  if (isChecked === true) {
    this.selectedArray.push(data);
  } else {
    let index = this.selectedArray(data);
    this.selectedArray.splice(index, 1);
  }
  console.log(this.selectedArray);
}

Есть идеи?

1 Ответ

3 голосов
/ 30 мая 2020

Вы не отправляете, если отмечен или нет, вы просто отправляете идентификатор. Просто отправьте весь свой объект и используйте его.

В HTML:

<div *ngIf="phones.length > 0">
  <ion-item *ngFor="let phone of phones">
    <ion-label>{{phone.name}}</ion-label>
    <ion-checkbox color="dark" (ionChange)="selectMember(phone)" [(ngModel)]="phone.isChecked"></ion-checkbox>
  </ion-item>
</div>

В компоненте:

selectedArray :any = []; // should be array of selected items
selectMember(data) {
    console.log(data.isChecked); //undefined
    if (data.isChecked === true) {
      this.selectedArray.push(data.id);
    }
    else {
      let index = this.selectedArray.indexOf(data.id);
      this.selectedArray.splice(index, 1);
    }
    console.log(this.selectedArray);
  }
...