Я написав кілька спеціальних прив’язок за допомогою KnockoutJS. Я все ще не впевнений, коли використовувати ko.utils.unwrapObservable(item)Дивлячись на код, цей виклик в основному перевіряє, чи itemє спостережуваним. Якщо це так, поверніть значення (), якщо це не так, просто поверніть значення. Розглядаючи розділ на нокаут про створення спеціальних прив’язок, вони мають такий синтаксис:
var value = valueAccessor(), allBindings = allBindingsAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
У цьому випадку вони викликають спостережуване через, ()але потім також дзвонять ko.utils.unwrapObservable. Я просто намагаюся впоратися з тим, коли використовувати одне проти іншого або якщо мені просто завжди слід дотримуватися вищезазначеної схеми та використовувати обоє.
ko.toJS(yourObject)а не використовуватиko.utils.unwrapObservable, якщо ви намагаєтесь отримати нерозгорнуту версію об’єкта для переходу у віджет або сторонній бібліотеку. Загалом, це найбезпечніше використовуватиko.utils.unwrapObservableдля підтримки спостережуваних та неспостережних.