JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script>
<input data-bind="value: test, valueUpdate: 'afterkeydown', customOne: test2, customTwo: test2, customThree: test2, customFour: test2" />
<input type="checkbox" data-bind="checked: test2" />
JavaScript
ko.bindingHandlers.customOne = {
update: function(element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor();
var allBindings = allBindingsAccessor();
console.log('i get never called after the first update');
}
};
ko.bindingHandlers.customTwo = {
update: function(element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor();
var allBindings = allBindingsAccessor();
console.log('i work as expected');
console.log(value());
}
};
ko.bindingHandlers.customThree = {
update: function(element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor();
var allBindings = allBindingsAccessor();
console.log('customThree: why get i called on value change? I am not a value binding. And why i donnot get called on test2 change...thats my binding');
console.log(allBindings.value());
}
};
ko.bindingHandlers.customFour = {
update: function(element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor();
var allBindings = allBindingsAccessor();
console.log('customFour: why get i called on value change? I am not a value binding');
console.log(value());
console.log(allBindings.value());
}
};
var ViewModel = function() {
this.test = ko.observable();
this.test2 = ko.observable();
}
ko.applyBindings(new ViewModel());