我发现了一段不寻常的代码,但我不明白如何调用这个自定义绑定函数以及它应该如何工作。下面是我的代码:
ViewModel:
ko.bindingHandlers.test = function ($) {
return {
init: function (el, valueAccessor, bindingsAccessor, viewModel) {
},
update: function (el, valueAccessor, bindingsAccessor, viewModel) {
}
}
}
视图:
<input type="text" data-bind="test: ???, value: 0, settings: { test: 'test-value' }">
你的代码是错误的,因为你有一个闭包范围,你需要做
ko.bindingHandlers.test = (function ($) {
return {
init: function (el, valueAccessor, bindingsAccessor, viewModel) {
},
update: function (el, valueAccessor, bindingsAccessor, viewModel) {
}
}
})(jQuery);
编辑:在你的标记绑定测试到你的viewModel的成员,如
<input type="text" data-bind="test: myMember />
从自定义绑定
访问绑定init: function (el, valueAccessor, bindingsAccessor, viewModel) {
var value = ko.utils.unwrapObservable(valueAccessor());
}