1

我有一个包含三个变量的 KnockoutJS 穆德尔:A 和 B 都是可观察的,C 是这样计算的:返回 A*B。

如您所见,C 是 A * B 的结果。但我也希望能够从输入中更改 C(这使其成为可观察的,并且 A 是 C 除以 B 的结果。

为了更有意义。A = 我们的货币金额,B 是汇率。然后 C 将是计算的目标金额。但有时用户不知道我们货币的金额,但知道目的地金额。我们货币的金额需要计算,而不是可观察的。我希望用户能够灵活地计算其中一个。

4

1 回答 1

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" />

小提琴

于 2012-08-31T07:27:50.893 回答