这是跟踪检查项目的角度方式吗?

时间:2014-03-12 15:18:22

标签: angularjs

我已经实现了我想要的,它是以角度创建所有已检查项目的数组。我计划在另一个功能中使用theese。

我的解决方案感觉有点尴尬,有没有更好的方法来做到这一点?

<input 
    ng-repeat="task in $store.taskarr track by $index" 
    ng-change="checked(check,$index,task)" 
    ng-model="check" 
    type="checkbox" 
/>


$scope.checked = function(check,count,task){
    if(check){
        $scope.$store.checkedItems[count] = task;
    }else{
        delete $scope.$store.checkedItems[count];
    }
}

2 个答案:

答案 0 :(得分:0)

我喜欢这个,因为它使用的代码较少:

        <input 
            ng-repeat="task in $store.taskarr track by $index" 
            ng-change="check ? ($store.checkedItems[$index] = task) :
                ($store.checkedItems[$index] = undefined)"
            ng-model="check" 
            type="checkbox" 
        />

答案 1 :(得分:0)

您可以使用跟踪所选项目状态的服务和可以附加到复选框的属性指令的组合。

可以将数据建模为将ID映射到是否检查项目的对象。

指令控制器可以负责更新服务,因此您的父控制器不必关心该部分,但您仍然可以从应用程序的任何位置获取选择状态。