https://stackoverflow.com/questions/47529591/knockout-custom-binding-identify-update-is-called-by-changes-and-not-in-initial
by jlspake
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" data-bind="test: Value" />
<br/>
<span data-bind="text: Value"></span>
JavaScript
ko.bindingHandlers.test = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
var accessor = valueAccessor();
ko.utils.registerEventHandler(element, "change", function() {
accessor($(element).val());
});
console.log('binding init');
accessor.subscribe(function(value){
console.log('value update');
});
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var accessor = valueAccessor();
var value = ko.unwrap(accessor);
$(element).val(value);
console.log('binding update');
}
}
ko.applyBindings({
Value: ko.observable('test')
});