2017-05-04 23 views
0

複数選択チェックボックスリストは以下のとおりです。コンポーネント(.ts)からすべてのチェック項目を選択する方法を教えてください。コンポーネントからすべてのチェック項目を選択 - マルチ選択チェックボックス

.htmlを

<ion-list> 
     <ion-item *ngFor="let i of inputs"> 
      <ion-label>{{i.display}}</ion-label> 
      <ion-checkbox name="{{i.label}}" [(ngModel)]="i.checked"></ion-checkbox> 
     </ion-item> 
</ion-list> 

.TS

this.inputs=[ 
     { 
      "encode": "1", 
      "display": "en falls asleep without a caregiver in the room", 
      "label": "uiFallsAsleepUnassistedBedTime", 
      "checked": false 
     }, 
     { 
      "encode": "2", 
      "display": "During breastfeeding", 
      "label": "uiBreastFeedBedTime", 
      "checked": false 
     }, 
     { 
      "encode": "3", 
      "display": "Being rocked or held (in arms or baby sling/carrier)", 
      "label": "uiSlingBedTime", 
      "checked": false 
     }, 
     { 
      "encode": "4", 
      "display": "In motion (stroller, car, etc.)", 
      "label": "uiInMotionBedTime", 
      "checked": false 
     }, 

] 

答えて

2

OPのフィードバック:1以下が私のために働いています。

this.inputs.filter(opt => opt.checked).map(opt => opt.label); 

オリジナル回答:

私はあなたがion-checkboxi.checked代わりのi. encodeをバインドするべきだと思います。 Array.filterを使用して、チェックされた項目を取得することができます。あなたはモデル項目の状態変数をチェックしている場合は

var inputs = [{ 
    "encode": "1", 
    "display": "en falls asleep without a caregiver in the room", 
    "label": "uiFallsAsleepUnassistedBedTime", 
    "checked": false 
    }, 
    { 
    "encode": "2", 
    "display": "During breastfeeding", 
    "label": "uiBreastFeedBedTime", 
    "checked": true 
    }, 
    { 
    "encode": "3", 
    "display": "Being rocked or held (in arms or baby sling/carrier)", 
    "label": "uiSlingBedTime", 
    "checked": false 
    }, 
    { 
    "encode": "4", 
    "display": "In motion (stroller, car, etc.)", 
    "label": "uiInMotionBedTime", 
    "checked": true 
    }, 
] 

console.log(inputs.filter(function(item){ return item.checked === true; })); 
+0

Nope.Iは 'checked'を取得する必要がある属性に結合

<ion-checkbox name="{{i.label}}" [(ngModel)]="i.encode" [checked]="i.checked" (change)="change(i, $event)"></ion-checkbox> 

tsのコードを追加することができます'multi-select checkbox'リストの値です。これは動的リストであり、ユーザーは値を変更することができます。 – Sampath

+0

@Sampathこのソリューションを試しましたか?これはあなたの 'ngModel'を' i.checked'に変更するだけで動作するはずです。ユーザーが 'checkbox'を変更した場合、その入力の値は' checked'に更新され、Array.filterは望みの結果を返します。 – Math10

+0

@Sampath 'i.encode'を' ngModel'にバインドすると、ユーザーがチェックボックスのステータスを変更したときに、 'encode'の値が0または1に変更されます。 – Pengyy

0

は、あなたは

checked = []; 

    change(item, event) { 
    var index = this.inputs.map(i => i.encode).indexOf(item.encode); 
    if(event.target.checked) { 
     if(index === -1) { 
     this.checked.push(item); 
     } 
    } else { 
     if(index !== -1) { 
     this.checked.splice(index, 1); 
     } 
    } 

    } 
+0

'.ts'コードも表示できますか?どのようにして 'checked'アイテムをコンポーネント(' .ts')だけから選ぶことができますか? – Sampath

+0

そして、私たちはこの '[value] =" i.encode "'を使うことはできません。 'Ionic check box'プロパティではありません。 – Sampath

+0

あなたはすべてを選択し、 'checked = true'をチェックします。 –

関連する問題