我对角度绑定模型有一些麻烦:
我有两个列表(班级和学生)。在学生详细信息页面上,我想:
- 展示所有可用的课程;
- 将学生已经参加的课程切换为"真实"。
- 允许用户添加/删除类。
我做 2 或 3 都没有问题 - 但我不能同时做这两件事。
<ion-list *ngFor="let cls of listOfAllClasses">
<ion-label>{{cls.name}}</ion-label>
<ion-toggle [(ngModel)]="cls.checked (ngModelChange)="pushClsToStudent(cls)">
</ion-toggle>
</ion-list>
Javascript:
pushClsToStudent(cls) {
cls.checked? this.student.classes.push(cls) : this.student.classes.filter(c => c.classId !== cls.classId)
问题是它使角火成为两个事件(1.(纳格模型)2. (嘟嘟��但我不知道如何绕过它。
提前非常感谢!
首先从指令中删除()
NgModel
:
<ion-toggle [ngModel]="cls.checked" (ngModelChange)="pushClsToStudent($event, cls)">
这样,ion-toggle
的值将绑定到cls.checked
的值,并在您更改输入的值时触发pushClsToStudent(cls)
。您需要event
参数添加到pushClsToStudent()
的函数中,以便捕获并为cls.checked
分配新值:
pushClsToStudent(event: any, cls: any) {
this.cls.checked = event;
...
}
注意:
您发布的代码中缺少"
,这会导致错误:
[(ngModel)]="cls.checked || [(ngModel)]="cls.checked"