Ich habe Radio-Box. Dafür habe ich click
Ereignis gebunden. Problem: Wenn diese Radio-Box von Anfang an überprüft werden sollte - es ist nicht.Knockout Bindung an Radio-Box
Also ich möchte checked
Ereignis hinzufügen. Aber das wird click
Logik bremsen, so wird es wie Doppelklick aussehen.
Wie kann ich alle Ereignisse korrekt an Radio binden, ohne manuell click
aufzurufen, wenn mein ViewModel erstellt wird?
<input data-bind="css: { checked: $component.isActiveGroup(value) },
click: $component.setActiveGroup.bind($component, value),
checked: $component.activeGroup"
value={{value}}
type="radio" />
setActiveGroup(groupName: string) {
if (!groupName) {
return;
}
const isActive = this.isActiveGroup(groupName);
this.activeGroup(isActive ? '' : groupName);
}
isActiveGroup(groupName: string) {
return this.activeGroup() === groupName;
}
activeGroup = ko.observable('');
Das Kontrollkästchen wird aktiviert, wenn die Bindung "checked" als wahr ausgewertet wird. Es ist so einfach. Erstellen Sie ein Observable (!), Das beim Start der Anwendung zu "true" wird, und binden Sie Ihr Kontrollkästchen daran an. Entfernen Sie anderen Code, der die Checkbox überprüft oder deaktiviert. – Tomalak