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

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());
}
Другие вопросы по тегам