【发布时间】:2013-04-24 01:16:18
【问题描述】:
这是我尝试谷歌答案后的第一篇文章。如果在此之前已在某个地方回答了此问题,那么如果您能帮助将我引导到正确的地方,那就太好了。
我正在想办法在 2 个字段之间进行 2 路绑定。
我的表单上有 2 个字段用于计算重量。 如果您在第 1 字段中输入以磅为单位的重量,那么 Knockout 将在第 2 字段中计算以千克为单位的重量。我对这个没有问题,这是我的 jsfiddle http://jsfiddle.net/ubiquitous_tom/tVh3g/
var weight = 180;
self.weight = ko.observable(weight.toFixed(2));
self.weightKG = ko.computed(function(){
var kg_weight = parseFloat(self.weight())/2.2;
return !isNaN(kg_weight) ? kg_weight.toFixed(2) : undefined;
});
现在我遇到的问题是,当我尝试将千克重量放入字段 #2 时。它应该以磅为单位计算到字段#1 中的重量,但它没有这样做。 我不知道如何使它工作,因为我尝试在两个字段上使用计算的“读取”和“写入”的所有代码都会给我带来无限循环错误,所以我认为我只是没有做正确的事情。
如果有人可以帮助我,那就太好了。我确信这是非常简单的事情,但我对 Knockout 完全陌生,我不太确定如何让它正常工作。 这是我正在尝试使用的 jsfiddle http://jsfiddle.net/ubiquitous_tom/VmZLZ/
var weight = 180;
self.weight = ko.observable(weight.toFixed(2));
self.weightKG = ko.computed({
read: function() {
return parseFloat(self.weight().toFixed(2));
},
write: function(newValue) {
var kg_weight = parseFloat(newValue)/2.2;
return !isNaN(kg_weight) ? kg_weight.toFixed(2) : undefined;
}
});
【问题讨论】:
标签: knockout.js computed-observable