フォームでは、名前は一意である必要があります。だからあなたのフォームでは、名前属性が同じであるため、2つの異なるチームとして評価されません。ここでは通常、あなたはそう、反復で名前を区別するためのインデックスを使用します。
*ngFor="let team of group['teams']; let i=index"
とname
属性
name="read{{i}}"
teams
は、2つの異なるグループと各チームであるので、あなたは、一つのさらなる問題を持っていますそれぞれの配列にインデックス0があります。したがって、上記を使用すると、同じname
属性になります。
read{{i}}
は、最終的にはread0
になりますが、これは問題の解決にはなりません。この問題は1つの同じフォーム名として評価されるためです。 NOWすべての項目を
name="read{{j}}{{i}}"
:あなたのname
属性を
<div *ngFor="let group of groups; let j=index">
と
<tr *ngFor="let team of group['teams']; let i=index">
とマーク:したがって、あなたはトップレベルの反復と、ネストされた反復のための二つの指標、両方を使用する必要がありますあなたのフォームには固有の名前があるので、フォームの値の結果は次のようになります:
{
"read00": true,
"download00": true,
"original00": false,
"read10": true,
"download10": true,
"original10": true,
"contribute10": true,
"manage10": false
}
これはフォームの動作方法です。すべての名前は一意でなければなりません。ここで
は、あなたが「それが必要のように動作しません」何を意味するあなたのフォークPlunker
ですか?期待される行動は何で、代わりに何を得るのですか? – AngularChef
Oこれはplnkrの例です。あなたはマークアップが