1- Используйте ng-click
и вызовите функцию
2- Создайте массив отмеченных флажков
3- Если когда-либо изменен какой-либо флажок, проверьте массив на наличие элемента и добавьте или удалите его из массива
Простой пример здесь
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
$scope.data = [{
id: "1",
itemName: "mousepad",
price: "20"
},
{
id: "2",
itemName: "keyboard",
price: "20"
},
{
id: "3",
itemName: "charger",
price: "20"
}
];
$scope.tempModel = '';
$scope.checkedArray = [];
$scope.updateCheckArray = function(itm) {
let index = $scope.checkedArray.findIndex(function(r) {
return r.id == itm.id;
});
if (index == -1) {
$scope.checkedArray.push(itm);
} else {
$scope.checkedArray.splice(index, 1);
}
};
});
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<hr>
<div class="post-content" ng-repeat="d in data">
<input ng-click="updateCheckArray(d)" type="checkbox" ng-model="tempModel" />{{d.itemName}}
<hr>
</div>
{{checkedArray}}
</div>
</body>
</html>
Обновление
1- Измените тело функции на это
$scope.checkedTrue = function(itm) {
let index = $scope.checkedArray.findIndex(function(r) {
return r.id == itm.id;
});
if (index == -1) {
$scope.checkedArray.push(itm);
} else {
$scope.checkedArray.splice(index, 1);
}
};
2- Добавить пустой массив для выбранной и пустой модели
$scope.tempModel = "";
$scope.checkedArray = [];
Изменения для вашего собственного кода:
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
$scope.data = [{
id: "1",
itemName: "mousepad",
price: "20"
},
{
id: "2",
itemName: "keyboard",
price: "20"
},
{
id: "3",
itemName: "charger",
price: "20"
}
];
$scope.tempModel = "";
$scope.checkedArray = [];
$scope.checkedTrue = function(itm) {
let index = $scope.checkedArray.findIndex(function(r) {
return r.id == itm.id;
});
if (index == -1) {
$scope.checkedArray.push(itm);
} else {
$scope.checkedArray.splice(index, 1);
}
};
});
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<hr>
<table class="table m-t-30">
<thead>
<tr>
<th>#</th>
<th>ItemName {{selected}}</th>
<th>ItemPrice</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="tic in data track by $index">
<td>
<input id="checkbox2" type="checkbox" ng-model="tempModel" ng-change="checkedTrue(tic)" />
</td>
<td><span>{{tic.itemName}}</span></td>
<td><span>{{tic.price}}</span></td>
</tr>
</tbody>
</table>
{{checkedArray}}
</div>
</body>
</html>