我对 knockout.js 自定义绑定(bind)中的以下行为感到困惑:
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()
应该给我绑定(bind)到元素值的 View 模型属性(即可观察的someText
) 。引用文档:
valueAccessor
— A JavaScript function that you can call to get the current model property that is involved in this binding. Call this without passing any parameters (i.e., callvalueAccessor()
) to get the current model property value.
但是,它真正所做的是返回绑定(bind)值,即{some: 'option'}
。
我错过了什么?
最佳答案
您需要在自定义绑定(bind)调用中传递您想要的 valueAccessor 模型属性。在您的情况下,您需要模型属性“someText”:
<input type="text" data-bind="value: someText, customBinding: someText">
关于knockout.js - 自定义绑定(bind) valueAccessor 有意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15545547/