従業員レコードのオブジェクトを受け取ってテーブルに表示するコンポーネントがあります。各レコードには、次のプロセスに含める従業員を「選択」できるチェックボックスがあります。このコンポーネントでAngular2 - 検査時に配列にチェック値をプッシュ
<tr *ngFor="let i of importResults" >
<td>
<input type="checkbox"
value="{{ i.QID }}"
attr.data-employeename="{{ i.PreferredName }} {{ i.LastName }}"
[checked]="isSelected" />
</td>
<td>{{ i.PreferredName }} {{ i.LastName }}</td>
</tr>
、私は配列selectedEmployees = [];
を作成し、私の目標は、私は、チェックボックスをクリックすると、その値が配列にプッシュされるだけでなく、私はそれをオフにする場合、値が配列から削除されていることです。
ngModel
を2 way binding
にしようとしましたが、このデータにはオブジェクトの初期チェック値がないため、正常に動作しませんでした。
これを達成する最も良い方法はngModel
ですか?たぶん私はそれについて間違った方向に行っていたのかもしれません。
this questionに従ってみましたが、typescriptは.entries
が無効であるとエラーを送出しました。それは、角度の古いバージョンのされている可能性があります?
チェックされた従業員のリストを作成して次のプロセスに移るのはどうでしょうか?それはもっと楽になるだろう。 – Steveadoo
@Steveadoo私はそれがオプションになると思います。それでもコンポーネント間のコミュニケーション全体を把握しようとしているので、次のプロセス(兄弟コンポーネント)でそれらの値を取得することは、私が把握する必要があります。提案していただきありがとうございます。 – SBB
isSelectedプロパティを "i"変数に格納できます。次に、選択した従業員だけを選択するために 'importResults.filter(i => i.isSelected)'を実行します。その結果をコンポーネントのフィールドに格納し、そのフィールドを兄弟コンポーネントに渡すことができます。そのためにはngModelを使用する必要があります。 – Steveadoo