applyBindingsToNode с наблюдаемым - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть следующий код:

ko.bindingHandlers.disablingOption = { 
    init: function(element, valueAccessor) { 
        alert(valueAccessor()); 
    }, 
    update: function(element, valueAccessor) { 
        alert(valueAccessor()); 
    } 
}; 

// Some other code 
var option = $(element); 
var tempObserver = ko.observable(true); 
ko.applyBindingsToNode(option, { 
    disablingOption : tempObserver 
 }); 
 tempObserver(false); 
// 

Мое намерение - увидеть три окна с предупреждениями, первые два из которых имеют значение «истина», а третье - «ложь», однако третье поле я никогда не получу.Есть идеи?

1 Ответ

3 голосов
/ 07 декабря 2011

Звонок valueAccessor() вернет вам tempObserver.Чтобы создать зависимость, вам действительно нужно получить доступ к значению tempObserver.

Безопасный способ сделать это - вызвать ko.utils.unwrapObservable для него, например:

alert(ko.utils.unwrapObservable(valueAccessor()));

ko.utils.unwrapObservable будет правильно обрабатывать возврат значения для наблюдаемого или ненаблюдаемого.

http://jsfiddle.net/rniemeyer/C7Gt5/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...