Я написав кілька спеціальних прив’язок за допомогою 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
для підтримки спостережуваних та неспостережних.