Я написал несколько пользовательских привязок с помощью KnockoutJS. Я все еще не уверен, когда использовать. ko.utils.unwrapObservable(item)Глядя на код, этот вызов в основном проверяет, itemявляется ли наблюдаемым. Если это так, верните значение (), если нет, просто верните значение. Если посмотреть на раздел Knockout о создании пользовательских привязок, у них следующий синтаксис:
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
В этом случае они вызывают наблюдаемое переходное отверстие, ()но затем также вызывают ko.utils.unwrapObservable. Я просто пытаюсь понять, когда использовать одно по сравнению с другим, или я должен всегда следовать приведенному выше шаблону и использовать оба.
ko.toJS(yourObject), чем использоватьko.utils.unwrapObservable, если вы пытаетесь получить развернутую версию объекта для передачи в виджет или стороннюю библиотеку. В общем, безопаснее всего использоватьko.utils.unwrapObservableдля поддержки наблюдаемых и ненаблюдаемых.