js调用自定义绑定函数



我发现了一段不寻常的代码,但我不明白如何调用这个自定义绑定函数以及它应该如何工作。下面是我的代码:

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());
}

最新更新