1

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

<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调用函数

问题:

当我的languageHide变量变为真时,我的doSomething功能就会触发

我将language对象作为参数发送给我的doSomething(language)函数,但在我的控制台日志中,我的语言对象未定义。

这是我的 .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 变量变为 true,然后我的 (ionChange) 函数会自动触发。

4

1 回答 1

0

我对 Ionic 没有任何经验,但你应该能够通过$event

(ionChange)="doSomething($event)

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

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

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

于 2016-12-12T11:42:38.477 回答