JSFiddle - React, Tailwind, and code Playground
HTML
<h1>ko 2.2.0 with suppressNoChangeExtender</h1>
<p>click in the input field and press arrow down...</p> <p><strong>write occurs</strong></p>
<input data-bind="value: query, valueUpdate: 'afterkeydown'"/>
<div data-bind="text: query"></div>
JavaScript
ko.extenders.suppressNoChange= function(target) {
var result = ko.computed({
read: target,
write: function(newValue) {
var current = target();
if (newValue!== current) {
target(newValue);
}
}
});
result(target());
return result;
};
var model=function(){
var self=this;
this.backingField = ko.observable("");
this.query = ko.computed({read:function(){
return self.backingField();
},write:function(v){
alert("write");
self.backingField(v);
}})
.extend({suppressNoChange:null});
}
var m=new model();
ko.applyBindings(m);