2017-04-20 6 views
1

私はIonic 2 read checkbox valueコードを答えに記述したのと同じ方法で参照しています。イオン2チェックボックスの値

Cannot read property 'indexOf' of undefined 

以下は私のhome.htmlコードです:しかし、私はそのコンソールにエラーメッセージを取得しています* ngForで

<form #leadsForm = "ngForm"> 
    <ion-item> 
     <ion-label>Assign to: </ion-label> 
     <ion-select [(ngModel)]="saleRep" name="saleRep"> 
      <ion-option *ngFor="let agency of agencyReps;let i = index;" value="{{agencyRepsIds[i]}}"> {{ agencyReps[i] }}</ion-option>       
     </ion-select> 
    </ion-item> 
    <button ion-button (click)="assignLeads()" block>Assign</button> 

    <ion-list > 
     <ion-item *ngFor="let t of leads;"> 
      <h2 [ngClass]="t.status">{{t.fname}} {{t.lname}} | {{ t.status}}</span></h2> 
      <label> 
       <input type="checkbox" value="{{t}}" [checked]="cbChecked.indexOf('t') >= 0" (change)="updateCheckedOptions(t, $event)" /> 
      </label> 
     </ion-item> 
    </ion-list> 
</form> 

リードはバックエンドから直接フェッチされ、リードデータは完全に罰金リストされています。

home.ts次のとおりです。

export class Leads { 
    cbChecked: string[]; 
    saleRep; 

    constructor() { } 

    updateCheckedOptions(chBox, event) { 
     var cbIdx = this.cbChecked.indexOf(chBox); 

     if(event.target.checked) { 
      if(cbIdx < 0){ 
       this.cbChecked.push(chBox); 
      console.log(chBox); 
      } 
     } else { 
      if(cbIdx >= 0){ 
      this.cbChecked.splice(cbIdx,1); 
       console.log(cbIdx); 
      } 
     } 
    } 

    assignLeads(){ 
     console.log('Selected Representative',this.saleRep) 
     console.log('CheckBox Value',this.cbChecked); 
    } 

} 

ありがとうございました。

答えて

1

2点:

  • 初期値を持っている必要がありcbChecked: string[] = [];!それ以外の場合は未定義です!ここではない't'
+0

ありがとう@mxii。わたしにはできる。別の半日を救った。 –

+0

あなたは大歓迎です!幸運と幸せなコーディング.. :) – mxii

1

cbCheckedは初期化されていません。

セット:

constructor() { 
    this.cbChecked=[]; 
} 
+0

  • [checked]="cbChecked.indexOf(t) >= 0"使用tはあなたの返事を@surajありがとうございました。 –

  • +0

    問題ありません。.. 't'と一緒に見逃しました。 –

    関連する問題