如何将对象作为参数发送到广播组

时间:2016-12-12 11:40:29

标签: angular radio-button ionic2 ionic2-select

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

<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)函数自动触发。

1 个答案:

答案 0 :(得分:0)

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

(ionChange)="doSomething($event)

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

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

您无法通过language变量,因为它在ion-list范围内不可见,定义如下。