我有一个包含三个变量的KnockoutJS模型:A和B都是可观察的,而C是这样的计算:返回A * B.
如你所见,C是结果A * B.但我希望能够从输入中改变C(这使得它成为一个可观察的并且A是C除以B的结果。
更有意义。 A =我们的货币金额,B是汇率。然后,C将是计算出的目的地金额。但有时用户不知道我们的货币金额,但知道目的地金额。我们的货币需求量不是要计算的,而是可观察的。我希望用户可以灵活地计算其中一个。
答案 0 :(得分:1)
您可以使用读/写计算来实现此目的。这是一个例子:
查看型号:
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" />