0

jsFiddle 这里有一个:

淘汰视图模型中有一个数组,每个数组元素都会引发错误。有没有办法计算整个视图模型的错误消息数量并通过公共 javascript 函数访问它?

这里的想法是计算视图模型的总错误,然后在 javascript 公共函数中执行一些外部操作。

谢谢

4

2 回答 2

2

试试这个修改过的小提琴版本:http: //jsfiddle.net/js8hh/4/

        self.Errors = ko.computed(function() {
            var errs = [];
            for(var p in self) {
                if(self.hasOwnProperty(p)) {
                    var pObj = self[p];
                    if(!!!ko.validation.utils.isValidatable(self[p])) {
                        console.info("ope, nvm");
                    } else {                            
                        if(!ko.validation.validateObservable(pObj)) {
                            errs.push({'Property':p,'Error':ko.utils.unwrapObservable(pObj.error)});
                        }
                    }
                } else {
                    console.trace("skipping prototype property");
                }
            }
            return errs;
        });

然后在底部

            addJointHolder: addJointHolder,
            AllErrors: ko.computed(function() {
                result = []
                ko.utils.arrayForEach(jointholders(),function(jh) {
                    if(jh.Errors().length > 0) {
                        result.push({'JointHolder':jh,'Errors':jh.Errors()});
                    }
                });
                return result;
            })
于 2013-11-11T21:54:43.973 回答
1

为什么不使用内置功能呢?

ko.validation.group

它返回一个带有错误的可观察数组

http://jsfiddle.net/tRVCr/4/

于 2013-11-12T09:22:41.243 回答