繁体   English   中英

计算出的淘汰赛问题

[英]Issues with Knockout computed

我有一个计算得出的可观察值:

passengerDocs.passengerDocsViewModel = function () {
var self = this;
self.isFunctionsDone = ko.observableArray([false, false, false, false, false, false, false]);
self.IsCompleted = ko.computed(function () {
    var isFinished = true;
    ko.utils.arrayForEach(self.isFunctionsDone(), function (x) {
        if (x == false) isFinished = false;
    });

    return isFinished;
});

问题在于,即使isFunctionDone的所有要素都为true,它也始终返回false。 有任何想法吗?

ko.utils.arrayForEach并非每次都能正确地与ko.computed交互,如果将其替换为simple for会更好。 另外,可能您在if语句中有问题,因为它仅检查数组中的最后一个值。

function Model() {
    var self = this;
    self.isFunctionsDone = ko.observableArray([false, false, false, false, false, false, true]);

    self.IsCompleted = ko.computed(function () {
        for(var i = 0; i <= self.isFunctionsDone().length; i++)
             if (self.isFunctionsDone()[i] === false) 
                return false;
        return true;
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM