Ich habe diese Checkbox (ein Kunde kann viele Zubehörteile):Angular 2 retrieve ausgewählte Kontrollkästchen
customer.component.html:
<div class="checkbox" *ngFor="let accessory of accessories">
<label>
<input type="checkbox" [(ngModel)]="accessory.selected" (ngModelChange)="onCheckboxChange(accessory)"> {{ accessory.name }}
</label>
</div>
customer.component.ts:
onCheckboxChange(accessory: any) {
if (accessory.selected == true) {
this.selectedAccessories.push(accessory);
} else {
let i = this.selectedAccessories.indexOf(accessory);
if (i != -1) {
this.selectedAccessories.splice(i, 1);
}
}
}
Ich habe eine Methode, die ich die ausgewählten Kontrollkästchen in einem Array speichern kann:
customer: Customer;
accessories: any[];
selectedAccessories: any[];
ngOnInit() {
this.accessoryService.get().subscribe(
accessories => this.accessories = accessories
)
if (this.routeParams.get('id')) {
let id = this.routeParams.get('id');
this.getCustomer(id);
}
}
getCustomer(id: number) {
this.customerService.getCustomer(id).subscribe(
data => {
this.selectedAccessories = data.customer.accessories
this.customer = data.customer
}
)
}
Es funktioniert gut, wenn ich überprüfe, ob das Objekt in der Datenbank gespeichert ist. Aber ich weiß nicht, wie ich das ausgewählte Zubehör zurück zu den Checkboxen füllen kann. Ich habe versucht, die Arrays mit indexOf() und map() zu vergleichen, aber ohne Erfolg
Obs: das Objekt Zubehör haben nur 2 Attribute: ID und Name.
Jede Hilfe wäre
Sie möchten Ihre Checkboxen beim Abrufen von Daten aus der Datenbank überprüfen? –