KnockoutJS中有没有办法暂停读/写计算可观察量的订阅?我的意思是,在特殊情况下,我不希望它受到其他属性变化的影响。
我的具体情况是我有属性:
.Total
.Discount
.FinalTotal
用户可以在Discount
和FinalTotal
输入中写入新值。如果用户更改Discount
,则会重新计算FinalTotal
(Total
- 计算出Discount
。
如果用户更改FinalTotal
,则会重新计算Discount
。因此,如果我将它们创建为计算机,我将得到无穷无尽的事件序列:
Discount
FinalTotal
Discount
取决于FinalTotal
,因此会重新计算Discount
......等等。
答案 0 :(得分: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();
});
}