0

KnockoutJS で読み取り/書き込み計算オブザーバブルのサブスクリプションを一時停止する方法はありますか? つまり、特定の状況で、他のプロパティの変更によって影響を受けることを望まないということです。

私の具体的なシナリオは、私がプロパティを持っているということです:

  • .Total
  • .Discount
  • .FinalTotal

Discountユーザーは入力と入力に新しい値を書き込むことができますFinalTotal。ユーザーが変更された場合、DiscountFinalTotal再計算されます (これはTotal- そのDiscount上で計算されます)。

ユーザーが変更された場合、FinalTotalDiscount再計算されます。したがって、それらを計算済みとして作成すると、この無限の一連のイベントが得られます。

  1. ユーザーの変更Discount
  2. ノックアウトは再計算しますFinalTotal
  3. Discountこれに依存しているためFinalTotal、再計算されますDiscount

...等々。

4

1 に答える 1

0

数式が何であるかはわかりませんが、正常に機能する2つの計算されたオブザーバブルを使用した例を次に示します。

function ViewModel() {
    var self = this;
    self.Total = ko.observable();
    self.Discount = ko.computed(function() {
        return self.Total() * .1;
    });
    self.FinalTotal = ko.computed(function() {
        return self.Total() - self.Discount();
    });
}
于 2013-01-18T00:32:53.490 に答える