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.

http://jsfiddle.net/tyq7ejdh/2/

this expression incorrect

   write: function (value) {                 self.var1((value+1) * self.price);             }, 

try updating this

   write: function (value) {                 self.var1((value * self.price) + 1);             }, 

fiddle


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -