如何同时使用角度模型变化和双重绑定



我对角度绑定模型有一些麻烦:

我有两个列表(班级和学生)。在学生详细信息页面上,我想:

  1. 展示所有可用的课程;
  2. 将学生已经参加的课程切换为"真实"。
  3. 允许用户添加/删除类。

我做 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"

相关内容

最新更新