Ich erhalte ein unerwartetes Checkboxverhalten.Merkwürdiges md-checkbox Verhalten, wenn anfängliches Klicken geschieht
Wenn ich zunächst auf meine Checkbox klicke, komme ich zur Funktion check()
des Facility-Objekts, und this.check
ist FALSE, wie es sein sollte. Meine Toggle-Anweisung !this.checked
funktioniert entsprechend, und dem NewState wird der Wert TRUE zugewiesen. In der nächsten Zeile, der Wert TRUE ist this.checked
zugewiesen, sehe ich die Welligkeit, aber keine Überprüfung erscheint.
Wenn ich dieses Kontrollkästchen später anklicke, komme ich wieder zur check() - Funktion des Facility-Objekts, und obwohl das Kontrollkästchen nicht aktiviert ist, ist dieser.check-Wert TRUE. Meine toggle-Anweisung funktioniert wieder, und der newState hat den Wert FALSE, und this.checked ist jetzt FALSE. Seltsamerweise erscheint danach der Scheck.
Was ist los?
Elternteil TreeNode Klasse
export class TreeNode {
id: string;
name: string;
checked: boolean;
constructor(id: string, name: string) {
this.id = id;
this.name = name;
this.checked = false;
}
}
Kindersitz Klasse
import { TreeNode } from './tree-node';
export class Facility extends TreeNode {
constructor(id: string, name: string) {
super(id, name);
}
check() {
console.log('Facility Check: facility = '+ this.name);
let newState = !this.checked;
this.checked = newState;;
}
}
HTML-Code, iteriert über eine Einrichtung Array
<div *ngFor="let facility of facilities" >
<md-checkbox [checked]="facility.checked" (click)="facility.check()">
{{facility.name}}</md-checkbox>
</div>
Ist dies eine gemeinsame Arbeit um? Ich werde das morgen ausprobieren. Danke für Ihre Antwort. –
Ich würde sagen, dass mehr als eine Abhilfe ist der Weg mit der Handhabung der md-Checkbox aktiviert Zustand Wechsel zu gehen. Ich habe die Antwort bearbeitet Fall mit ngModel in eine Option hinzufügen, die Sie nicht wirklich brauchen andere aus Gründen der Änderung Ereignis zu reagieren, als dass boolean beibehalten wird. –
Das hat funktioniert. Danke Fredy. –