knockout.js调用自定义绑定函数

时间:2013-05-13 09:50:45

标签: knockout.js ko-custom-binding

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

视图模型:

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' }">

1 个答案:

答案 0 :(得分:1)

你的代码错了,因为你有一个你需要的闭包范围

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