J'ai écrit quelques liaisons personnalisées à l'aide de KnockoutJS. Je ne sais toujours pas quand utiliser ko.utils.unwrapObservable(item)
En regardant le code, cet appel vérifie essentiellement si item
c'est une observable. Si c'est le cas, retournez la valeur (), si ce n'est pas le cas, renvoyez simplement la valeur. En regardant la section sur Knockout sur la création de liaisons personnalisées, elles ont la syntaxe suivante:
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
Dans ce cas, ils invoquent l'observable via ()
mais appellent ensuite ko.utils.unwrapObservable
. J'essaie juste de savoir quand utiliser l'un par rapport à l'autre ou si je dois toujours suivre le modèle ci-dessus et utiliser les deux.
ko.toJS(yourObject)
plutôt que d'utiliserko.utils.unwrapObservable
, si vous essayez d'obtenir une version non emballée de l'objet à passer dans un widget ou une bibliothèque tierce. En général, il est plus sûr à utiliserko.utils.unwrapObservable
pour prendre en charge les observables et les non-observables.