Ich habe einige benutzerdefinierte Bindungen mit KnockoutJS geschrieben. Ich bin mir immer noch nicht sicher, wann ich ko.utils.unwrapObservable(item)
den Code verwenden soll. Bei diesem Aufruf wird im Grunde geprüft, ob item
er beobachtbar ist. Wenn dies der Fall ist, geben Sie den Wert () zurück. Wenn dies nicht der Fall ist, geben Sie einfach den Wert zurück. Im Abschnitt über Knockout zum Erstellen benutzerdefinierter Bindungen haben sie die folgende Syntax:
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
In diesem Fall rufen sie das Observable via auf ()
, rufen dann aber auch auf ko.utils.unwrapObservable
. Ich versuche nur herauszufinden, wann ich eines gegen das andere verwenden soll oder ob ich einfach immer dem obigen Muster folgen und beide verwenden soll.
ko.toJS(yourObject)
verwendenko.utils.unwrapObservable
, als sie zu verwenden , wenn Sie versuchen, eine entpackte Version des Objekts in ein Widget oder eine Bibliothek eines Drittanbieters zu übertragen. Im Allgemeinen ist die Verwendungko.utils.unwrapObservable
zur Unterstützung von Observablen und Nicht-Observablen am sichersten .