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