我有一个包含三个变量的 KnockoutJS 穆德尔:A 和 B 都是可观察的,C 是这样计算的:返回 A*B。
如您所见,C 是 A * B 的结果。但我也希望能够从输入中更改 C(这使其成为可观察的,并且 A 是 C 除以 B 的结果。
为了更有意义。A = 我们的货币金额,B 是汇率。然后 C 将是计算的目标金额。但有时用户不知道我们货币的金额,但知道目的地金额。我们货币的金额需要计算,而不是可观察的。我希望用户能够灵活地计算其中一个。
我有一个包含三个变量的 KnockoutJS 穆德尔:A 和 B 都是可观察的,C 是这样计算的:返回 A*B。
如您所见,C 是 A * B 的结果。但我也希望能够从输入中更改 C(这使其成为可观察的,并且 A 是 C 除以 B 的结果。
为了更有意义。A = 我们的货币金额,B 是汇率。然后 C 将是计算的目标金额。但有时用户不知道我们货币的金额,但知道目的地金额。我们货币的金额需要计算,而不是可观察的。我希望用户能够灵活地计算其中一个。
您可以使用读/写计算来实现这一点。这是示例:
查看型号:
function ViewModel() {
var self = this;
self.amount = ko.observable();
self.rate = ko.observable();
self.result = ko.computed({
read: function() {
if (self.amount() && self.rate())
return self.amount() * self.rate();
},
write: function(value) {
if (self.rate()) {
self.amount(value / self.rate());
}
}
});
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
看法:
<input data-bind="value: amount" />
<input data-bind="value: rate" />
<input data-bind="value: result" />