Я понимаю, что вы связали объект с атрибутом value
. Это неверно, поскольку атрибут value принимает только числа или строки.
Однако, если вы хотите связать объект с параметром ion, вам следует использовать свойство bind task
для ngValue
вместо
<ion-label>Select Task</ion-label>
<ion-select [(ngModel)]="selectedTask" #A (ionChange)="updateChangedTask(false)">
<ion-option *ngFor="let task of tasklist" [ngValue]="task">{{task.taskName}}</ion-option>
</ion-select>
</ion-item>
Если вы предпочитаете связывать строку / число вместо целого объекта, вам нужно будет внести следующие изменения как в ваш component.html, так и component.ts
Сначала вы связываете selectedTask
со строкой taskID
public selectedTask: string = '';
changeTask(task: any){
this.selectedTask = task.taskID;
}
И затем вы связываете value
атрибут ion-options с task.taskID
, который содержит строковое значение.
<ion-label>Select Task</ion-label>
<ion-select [(ngModel)]="selectedTask" #A (ionChange)="updateChangedTask(false)">
<ion-option *ngFor="let task of tasklist" [value]="task.taskID">{{task.taskName}}</ion-option>
</ion-select>
</ion-item>
Вы можете выбрать любой из методов, и двустороннее связывание данных должно работать соответствующим образом.