gpt4 book ai didi

knockout.js - 敲: two variables subscribing to each other

转载 作者:行者123 更新时间:2023-12-01 11:40:11 26 4
gpt4 key购买 nike

我不知道如何正确地提出这个问题......我想要两个相互监视并相应变化的变量。一个是小数,另一个是百分比。

我的模型中有一个可观察对象。它从服务器端获取值(value)。

self.varDecimal = ko.observable(valueFromServerSide);

此变量保存十进制值。我需要的是在输入框中显示此变量(实际上它是带有自定义绑定(bind)的 touchspin)并允许用户对其进行编辑。但是,我需要用户编辑的不是小数值,而是百分比。

self.varPercents = ko.observable(); //should be = self.varDecimal * 100

所以:

1) 当数据从服务器映射时,我需要从 self.varDecimal 计算 self.varPercents (self.varDecimal() * 100)。

2) 我需要在输入中显示 self.varPercents(实际上它是 touchspin,但这是稍后的内容)并且允许用户编辑百分比。

3) 用户正在编辑这个百分比,我希望 self.varDecimal 相应地更新 (self.varPercents/100)。稍后将 self.varDecimal 发送回服务器。

某些 KO 订阅或计算或类似方式是否可行?

我知道我可以没有它,例如,当接收数据时我可以简单地计算 self.varPercents,但是当将数据发送回服务器时我可以重新计算 self.varDecimal,但我想知道这是否可能通过一些 knockout 功能,因为实际上我有很多这样的领域,我想要一些通用的解决方案。

最佳答案

你需要使用一个可写的计算

http://knockoutjs.com/documentation/computedObservables.html#writeable-computed-observables

http://jsfiddle.net/QAe72/

this.percentage = ko.computed({
write: function(value) {
this.decimal(value / 100);
},
read: function() {
return this.decimal() * 100;
}
}, this);

关于knockout.js - 敲: two variables subscribing to each other,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21910905/

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