如何在无线电组中将对象作为参数发送

How to send an object as a parameter in radio group

我有一个数组,我用它来显示

<ion-item (click)="toggleLanguages()">
          Languages
          <ion-icon name="add" item-right *ngIf="languageShow"></ion-icon>
          <ion-icon name="remove" item-right *ngIf="languageHide"></ion-icon>
        </ion-item>
        <div *ngIf="languageHide">

          <!-- All radio's in a radio group -->

          <ion-list radio-group [(ngModel)]="selectedLanguage" (ionChange)="doSomething(language)">
            <ion-item *ngFor="let language of languageArray">
              <ion-label >{{language.language_name}}</ion-label>
              <ion-radio item-left [value]="language"></ion-radio> 
            </ion-item>
          </ion-list>

        </div>

如你所见,我正在使用 ionchange 调用函数

问题:

when ever my languageHide variables become true my doSomething funtion is triggering

i am sending language object as parameter to my doSomething(language) function but in my console log i am getting undefined for language object.

这是我的 .ts 文件

doSomething(languages){

console.log("invoking dosomething");
console.log("checking languages "+ JSON.stringify(languages));//here it is not printing
}

toggleLanguages(){
  console.log("invoking toggleLanguages");
  this.languageShow = !this.languageShow;
  this.languageHide = !this.languageHide;
}

从上面两个函数我首先调用toggleLanguages()函数 一旦我调用这个函数,我的 this.languageHide 变量变为真,然后我的 (ionChange) 函数就会自动触发。

我没有任何使用 Ionic 的经验,但你应该可以通过 $event:

(ionChange)="doSomething($event)

然后您可以在控制台中打印 $event 以查看如何提取您需要的数据:

doSomething(event: any){
    console.log(event);
}

您不能传递 language 变量,因为它在 ion-list 范围内不可见,定义如下。