チェックボックスの値を初期化して操作するにはどうすればよいですか?私は非常に多くの例を見てきましたが、いずれも動かすことができませんでした。角2ハッシュマップからチェックボックスを初期化する
私は、行がタスクを表すN x Mテーブルと、学生の列を提示しようとしています。考え方は、テーブルのチェックボックスの1つをチェックすると、学生にタスクが割り当てられるということです。
すべてのチェックボックスの値を含むタイスクリプトハッシュマップがあります。
assigned : { [key:string]:boolean; } = {};
ハッシュキーがある:
var key = a.TaskId + '_' + a.StudentId;
テーブルは、ネストされたngForで生成され:
cbValue(taskItem, studentItem) {
var key = taskItem.TaskId + '_' +studentItem.StudentId;
return this.assigned[key];
}
:
<tr *ngFor="let t of tasks">
<td>Task Name for task... {{t.taskId}} </td>
<td *ngFor="let s of students">
<input type="checkbox" name=#{{t.TaskId}}_{{s.StudentId}} change="onAssignmentChange(t,s)" [checked]="cbValue(t, s)">
</td>
</tr>
cbValue(T、S)のように見えます
これは機能しません。タのすべてのチェックボックスハッシュの値が何であっても、チェックはチェックされません。
は私も試してみた:
<input type="checkbox" change="onAssignmentChange(t,s)" [checked]="cbValue(t, s)">
<input type="checkbox" change="onAssignmentChange(t,s)" [(ngModel)]={{t.TaskId}}+'_'+{{s.StudentId}} >
<input type="checkbox" change="onAssignmentChange(t,s)" [(ngModel)]="assigned[t.TaskId"+'_'+"s.StudentId"]>
いずれもが動作します。
私はここでかなり暗いと思われます。コンソールにエラーが表示されなくても、 'onAssignmentChange'にはヒットしません。
また、
... name=#{{t.TaskId}}_{{s.StudentId}} ...
が、これは地元のターゲットか何かすることになっていますか?当社ではJavaScriptのブラケットプロパティアクセサを使用しているので、私たちはただ、ストレートassigned
オブジェクトにバインドしようとしているとして予め
ワークス:
テンプレートはここで実証するplunkerです。本当にありがとう;特にplunkrのために。 {{}}をいつ使用するのか、そうでないのかをどのように知っていますか? – user2785918
テンプレート構文であるIIRCの入門書があります。https://angular.io/docs/ts/latest/guide/template-syntax.html#!#binding-syntax '[]'と '{{ }} 'は類似しており、データから見ることができます。'() 'はデータを表示します。 – silentsod