gpt4 book ai didi

javascript - knockout : How to do a two-way binding for two number inputs

转载 作者:行者123 更新时间:2023-12-03 10:33:53 27 4
gpt4 key购买 nike

我最近刚刚拿起 KO,想做类似以下的事情。

有两个输入,它们会互相改变。

HTML:

<input data-bind="value: var1" type="text">
<input data-bind-"value: var2" type="text">

脚本:

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 is 44 for var1,
// var2 changes to 8.6. Desired is 40 for var1 and 7.8 for var2.
},
owner: self
});
}
ko.applyBindings(new DataViewModel());

当 var1 输入 40 时,var2 显示 7.8。但是当 7.8 输入到 var2 时,var1 更新为 44 而不是 40,并且 var2 更改为 8.6。

我希望 var2 保留输入的内容,而不是经历读取功能。

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

最佳答案

这个表达不正确

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

尝试像这样更新

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

Fiddle

关于javascript - knockout : How to do a two-way binding for two number inputs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29091193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com