2016-02-04 69 views
1
返回一个真正的功能,我有一点麻烦我的函数返回一个 truefalse

在AngularJS

基本上我有一个数组像下面

;

orderItem包含menu_modifier_groups含有menu_modifier_items

现在每个menu_modifier_groups具有属性max_selection_points。 的menu_modifier_items使用ng-repeatcheckboxes,并有ng-model = item.selected

我想要做的是能遍历所有menu_modifier_groups,并确定是否需要menu_modifier_items已经通过比较他们选择的每个menu_modifier_groups

max_selection_points显示

这是我迄今为止

$scope.isValid = function (orderItem) { 
     var count = 0; 
     angular.forEach(orderItem.menu_modifier_groups, function(group) { 
      angular.forEach(group.menu_modifier_items, function (item) { 
      count += item.selected ? 1 : 0; 
     }); 
     if (count != group.max_selection_points) { 
      return false; 
     } else if (count == group.max_selection_points) { 
      return true; 
     } 
    }); 
} 

任何帮助/建议赞赏

+0

你应该有一个'if'条件OUT侧的所有的'forEach' –

+0

@ParthTrivedi但随后'group'会外范围,并不会被定义 –

回答

2

你的代码应该是

$scope.isValid = function(orderItem) { 
    //By default make it false 
    var IsAllSelected = false; 
    angular.forEach(orderItem.menu_modifier_groups, function(group) { 
    var count = 0;     
    angular.forEach(group.menu_modifier_items, function(item) { 
     count += item.selected ? 1 : 0; 
    }); 
    if (count == group.max_selection_points) { 
     IsAllSelected = true; 
    } else { 
     //if one item failed All select do return false 
     IsAllSelected = false; 
    } 
    }); 
    return IsAllSelected; 
} 
+0

检查我的答案 –

+0

得到'IsAllSelected没有定义'也有'count'和'Count' –

+0

检查更新的答案。 –