AngularJS - ng-repeat with array checkboxes

时间:2016-03-01 15:31:21

标签: arrays angularjs

这是演示:

JSFiddle

var app = angular.module('app', []);

    function Ctrl($scope) {

        $scope.selection = [];

        $scope.categories = [ { "name": "Sport", "id": "50d5ad" } ,
        {"name": "General", "id": "678ffr" } ];

    }

如果我选中任何复选框,我需要在数组中看到它的名字,但没有任何反应,为什么?

3 个答案:

答案 0 :(得分:2)

我建议添加一个在点击时添加或删除元素的功能,具体取决于复选框的状态:

Updated JSFIDDLE

HTML:

<input type="checkbox" ng-click="addToSelection(category)" ng-model="category.selected" name="group" id="{{category.id}}"/>

控制器:

$scope.addToSelection = function(category) {
            if (category.selected == true)
          $scope.selection.push(category.name);
        else
        $scope.selection.splice($scope.selection.indexOf(category.name),1);
    }

答案 1 :(得分:0)

您必须为ng-change事件绑定侦听器。像

这样的东西
ng-change="selection.push(category.name)"

更新了小提琴:http://jsfiddle.net/0m3qc4s6/2/

答案 2 :(得分:0)

您可以尝试更改

$scope.selection = [];

$scope.selection = {};