我需要一个knockout计算函数来直接执行,但它看起来更像是knockout对可计算对象进行排队,并在需要时执行。有没有一种方法(除了不使用knockout)来获得立即执行?
我已经逐步执行了我的代码,看到我的例程在调用计算函数之后继续执行,后来我在函数的断点处停止--这时已经太晚了。
我已经删除了95%的代码,但变量名仍然存在,在这种情况下,它们可能看起来有点奇怪...
var self = this;
self.temp = true;
self.UsePatterns = ko.observable(false);
self.UsePatterns.subscribe(function () {
self.ShowReport();
});
self.PatternColors = ko.computed(function () {
var retValue = self.UsePatterns() ? true : false
return retValue;
});
self.ShowReport = function () {
self.temp = self.PatternColors();
alert (self.temp);
};
self.UsePatterns(true);
self.UsePatterns(false);
self.UsePatterns(true);
https://jsfiddle.net/tommypeters/1ubfa4ev/22/
人们会认为这应该得到真,假,真,而不是相反...
1条答案
按热度按时间laawzig21#
您应该改用
ko.pureComputed()
。第一个