考虑以下示例:http://jsfiddle.net/KWLu7/16/
我试图将总体重要性值计算为每个所选选项重要性的总和 乘以其父标准重要性:
var watch = $scope.$watch("prioritizationProfile", function() {
$scope.overallImportance = 0;
for(var j = 0; j < $scope.prioritizationProfile.length; j++) {
var criterionGroup = $scope.prioritizationProfile[j].criterionGroup;
for(var i = 0; i < criterionGroup.length; i++) {
var criterionChoices = criterionGroup[i].choices;
for(var k = 0; k < criterionChoices.length; k++) {
console.log(criterionChoices[k]);
if(criterionChoices[k].selected) {
$scope.overallImportance +=
criterionChoices[i].importance *
criterionGroup[i].importance;
}
}
}
}
}, true);
如果你尝试它,你会看到最大值总是22.我在这里做错了什么?
答案 0 :(得分:1)
您在prioritizationProfileWatch
更改
$scope.overallImportance += criterionChoices[i].importance * criterionGroup[i].importance;
要
$scope.overallImportance += criterionChoices[k].importance * criterionGroup[i].importance;