使用AngularJS在表格中选中复选框

时间:2014-09-24 08:03:59

标签: javascript angularjs angularjs-scope

我正在尝试创建一个方法,当检查了一个复选框时,从表中接收Id,并且应该更新angular控制器中的$ scope.selected。 当取消选中该复选框时,它应该再次从$ scope.selected中删除它。

到目前为止看起来像这样:

$scope.updateselection = function(id) {
   if ($scope.selected(sort_id) != id) { //what is the correct syntax here??
       $scope.selected.push({ sort_id: id });
   } else {
       $scope.selected.remove({ sort_id: id });
   }
};

1 个答案:

答案 0 :(得分:1)

为了与Angular中的ckeckbox交互,我建议使用以下指令:http://vitalets.github.io/checklist-model/

如果您不想使用此指令,可以在复选框表上创建观察程序。

例如:

<强> HTML:

<table>
    <tr>
        <td ng-repeat="item in items">
            <input type="checkbox" ng-model="item.value"> 
        </td>
    </tr>
<table>

<强> JS:

 $scope.items = [
        {
            name: "name1",
            value: true
        },
        {
            name: "name2",
            value: false 
        }
    ];

    $scope.selectedItems = [];

    $scope.$watch('items', function(newValues){
        $scope.selectedItems.length = 0;
        angular.forEach(newValues, function(item) {
            if (item.value == true) {
                $scope.selectedItems.push(item.name);
            }
        });
        console.log($scope.selectedItems);
    }, true);

这种方式可让您始终获得有关所选复选框的实际信息。

我已经为您创建了JSFiddle的工作示例。