AngularJS中的复选框

时间:2014-07-17 14:04:44

标签: javascript angularjs checkbox

我有一个带有checboxes行的表格。当我单击一个复选框时,我希望将ID属性的值推送到对象中。

我有以下HTML代码:

<tr ng-repeat="info in test">
    <td>{{info.stracka}}</td>
    <td>{{info.tid}}</td>
    <td><input type="checkbox" id="{{info.id}}" ng-model="compare.checkbox">
</tr>

如您所见,我的ng模型连接到比较对象。如何将ID属性的值添加到比较对象? ng-model似乎只能将一个复选框的值绑定到控制器中的变量。我该如何解决这个问题?

这是我的控制器:

as.controller('Test', function($scope, $http, $rootScope, testFactory)
{   
    $http.get($rootScope.appUrl + '/nao/test/test')
        .success(function(data, status, headers, config) {
            $scope.test = data.data;
    });

    $scope.form = {};
    $scope.compare = {};
    $scope.submitForm = function(isValid) {
        if(isValid) 
        {   
            /*testFactory.testFactoryMethod(function($http) {
                $scope.test = data;
            });*/
            $http.post($rootScope.appUrl + '/nao/test', $scope.form)
            .success(function(data, status, headers, config) {
                console.log(data);
                $scope.test.push($scope.form);
                $scope.test.push(data);
            }).error(function(data, status) {

            });
        }
    };
});

2 个答案:

答案 0 :(得分:0)

您的问题是您将所有复选框绑定到compare.checkbox

如果您将$scope.compare.checkbox = [];添加到控制器 和     改为使用

ng-model="compare.checkbox[info.tid]

假设info.tid是一个数字并且是唯一的,您应该可以使用

从控制器访问该复选框

$scope.compare.checkbox[thetidhere];

答案 1 :(得分:0)

要推送其他数据,您应该按照以下方式使用ng-click

<input 
    type="checkbox" id="{{info.id}}" 
    ng-model="compare.checkbox" 
    ng-click="compare.id_attribute = info.id" 
/>