如何在AngularJS中获取Checkbox的所有选定对象?

前端之家收集整理的这篇文章主要介绍了如何在AngularJS中获取Checkbox的所有选定对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用AngularJS获取复选框的所有选定对象.

以下是我的代码

我的view.tpl.html

<tr ng-repeat="item in itemList">
<td>
<input type="checkBox" ng-click="clickedItem(item.id)" 
       ng-model="model.controller.object"
       {{item.name}} />
</td>

我的控制器

$scope.itemList = [
{
  id:"1",name:"first item"
},{
  id:"2",title:"second item"
},{
  id:"3",title:"third item"
}
];

   $scope.selection = [];
    $scope.clickedItem = function(itemId) {
        var idx = $scope.selection.indexOf(itemId);
        if (idx > -1) {
            $scope.selection.splice(idx,1);
        }

        // is newly selected
        else {
            var obj = selectedItem(itemId);
            $scope.selection.push(obj);
        }
    };

    function selectedItem(itemId) {
        for (var i = 0; i < $scope.itemList.length; i++) {
            if ($scope.itemList[i].id === itemId) {
                return  $scope.itemList[i];
            }
        }
    }

在这里,我将获得$scope.selection中的所有选定项.我怎样才能把它变成ng-model?

是否可以像ng-model =“model.controller.object = selection”那样做,因为我需要将所选的$scope.selection分配给model.controller.object

如果我理解正确你想要创建一个复选框并动态地将它绑定到列表中的一个项目,如果是这样,我就会这样做:
$scope.modelContainer=[];
angular.forEach($scope.itemList,function(item){
  $scope.modelContainer.push({item:item,checked:false });

});

HTML:

<div ng-repeat="item in itemList">
{{item.name}} 
<input type="checkBox" ng-click="selected(item.id)"   ng-model="modelContainer[$index].checked"     />
</div>

请参阅plunk.每当您选中复选框时,请在控制台中查看模型容器更改.

猜你在找的Angularjs相关文章