2016-08-29 9 views
0

ネストされたオブジェクトを繰り返そうとしていますが、値がtrueまたはfalseのチェックボックスがあります。ネストされたngForの繰り返しのチェックボックス入力

<accordion-group 
    *ngFor='let brand of products'> 
    <div *ngFor='let product of brand.products'> 
     <div> 
      <input type="checkbox" id="{{product.name}}" ngControl="{{product}}" ([ngModel])="product.checked"> 
      <label 
       attr.for="{{product.name}}" 
       id="{{product.description}}" 
       class="{{product.description}}" 
       (click)="onCheck(model)"> 
      </label> 
      </div> 
     </p> 
     </div> 
    </accordion-group> 

Plunker:

はここに私のコードですhttp://plnkr.co/edit/IItxHiXkpocUjLG6NhMy?p=preview - 数量値が更新されたときにチェックボックスがチェックしていないことがわかります。 ngModelを正しく動作させることができません。

+3

チェックボックスに名前属性を入力します。彼らが同じグループに所属することになっている場合、彼らは同じ名前を持つべきです。また、コードを実行して失敗するのを見て、問題をよりよく理解できるように、このコードでフィリピンを追加すると、この質問をより明確にすることができます。 – gdyrrahitis

答えて

2
  • ない "バナナでボックス"、 "ボックス内のバナナ" と呼ばれています

    [(ngModel)] 
    

    する必要がありますngControlは、角2に従ってfromControlNameにする必要があります。

  • ([ngModel])は[(ngModel)]であるか、[ngModel](ngModel)のように異なるものとして使用する必要があります。 dynamicaly

使用[id]="product?.name"の代わりに、あなたのケースを使用しているとして、ID、名前などを結合しながら、

  • より良いproperty Binding using [ ]を使用するid="{{product.name}}"

    使用[attr.for]="product?.name"代わりattr.for="{{product.name}}"

  • のまだ残りの場合は、残りのすべてが大丈夫だと思われる同じ問題で問題をplunkerに再現して投稿してください。

    +0

    編集された質問にリンクされているプラ​​ンナーを参照してください。数量が更新されたときにチェックするにはチェックボックスが必要ですが、動作しません。 ngModelはあなたが正しいとしている方法でバインドしていません。 –

    +0

    私は自分のプランクターを働かせました。今私はそれが私のアプリで動作しない理由を把握する必要があります。ありがとう! –

    1

    これは

    ([ngModel]) 
    

    無効であり、それは;-)

    +1

    haha​​どのようなスローガン:p BANANA&BOX –

    +0

    しかし、それは参考になります:D –

    +0

    ええ、間違いなく: –

    0

    [(ngModel)] = "product.checked";

    角度2で100%動作する

    関連する問題