我有一个带有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) {
});
}
};
});
答案 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"
/>