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