javascript - Knockout: How to do a two-way binding for two number inputs -
i picked ko , want similar following.
there 2 inputs , change 1 another.
html:
<input data-bind="value: var1" type="text"> <input data-bind-"value: var2" type="text">
script:
function dataviewmodel() { var self = this; self.price = 5; self.var1 = ko.observable(0); self.var2 = ko.computed({ read: function () { if(self.var1() <= 0) { return 0; } return (self.var1 - 1) / self.price; }, write: function (value) { self.var1((number(value) + 1) * self.price); // value = 7.8, output 44 var1, // var2 changes 8.6. desired 40 var1 , 7.8 var2. }, owner: self }); } ko.applybindings(new dataviewmodel());
when 40 inputed var1, var2 shows 7.8. when 7.8 inputed var2, var1 updates 44 instead of 40 , var2 changes 8.6.
i want var2 remain inputed instead of undergoing read function.
this expression incorrect
write: function (value) { self.var1((value+1) * self.price); },
try updating this
write: function (value) { self.var1((value * self.price) + 1); },
Comments
Post a Comment