我对 knockout.js 的自定义绑定中的以下行为感到困惑:
ko.bindingHandlers.customBinding = {
update: function(element, valueAccessor, allBindingsAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
console.log( JSON.stringify(value) );
}
}
ko.applyBindings({
someText: ko.observable("inital value")
});
和
<input type="text" data-bind="value: someText, customBinding: {some: 'option'}">
valueAccessor()
应该给我绑定到元素值的视图模型属性(即 observable someText
)。引用文档:
valueAccessor
— 一个 JavaScript 函数,您可以调用它来获取此绑定中涉及的当前模型属性。在不传递任何参数的情况下调用它(即 callvalueAccessor()
)以获取当前模型属性值。
然而,它真正做的是返回绑定值,即{some: 'option'}
.
我错过了什么?