0

KnockoutJS 中有没有办法暂停对读/写计算的 observable 的订阅?我的意思是我不希望在特定情况下它受到其他属性变化的影响。

我的具体情况是我有属性:

  • .Total
  • .Discount
  • .FinalTotal

用户可以DiscountFinalTotal输入中写入新值。如果用户改变Discount了,FinalTotal就会重新计算(就是Total-Discount计算就可以了)。

如果用户更改FinalTotalDiscount将重新计算。因此,如果我将它们创建为计算值,我会得到这个无穷无尽的事件序列:

  1. 用户变更Discount
  2. 淘汰赛重新计算FinalTotal
  3. 因为Discount依赖FinalTotal这个会重新计算Discount

...等等。

4

1 回答 1

0

我不确定你的公式是什么,但这里有一个使用两个计算得很好的 observables 的例子:

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 回答