Я хочу, $scope.selectedRecords
переменная $scope.selectedRecords
увеличивалась при установке флажка. Прямо сейчас ничего не происходит, то есть {{selectedRecords}}
не увеличивается. Нет никаких изменений.
контроллер:
$scope.selectedRecords = 0;
// SET-UP ROW CLICK FOR CHECKBOX
$scope.setSelected = function(record) {
if (!record.Selected) {
record.Selected = true;
$scope.selectedRecords += 1
} else {
record.Selected = false;
$scope.selectedRecords -= 1
}
}
HTML:
<h4>{{selectedRecords}} users selected</h4>
<tr ng-repeat="record in records | orderBy:sortType:sortReverse | filter:searchUsers" ng-class="class" class="row-link" ng-click="setSelected(record)">
<input type="checkbox" ng-model="record.Selected" ng-click="setSelected(record)">
Вот рабочий пример: http://codepen.io/anon/pen/pjNWVL?editors=101
Не могу понять, почему ваш образец не работает, но мой может дать вам некоторую помощь :-)
HTML:
<div ng-app="pouet" ng-controller="PouetCtrl">
<h4>{{selectedRecords}} users selected</h4>
<div ng-repeat="record in records">
<input type="checkbox" ng-model="record.selected" ng-click="setSelected(record)">
<span class="label">{{record.label}}</span>
</div>
</div>
JS:
var mod;
mod = angular.module('pouet', []);
mod.controller('PouetCtrl', function($scope) {
$scope.records = [
{
selected: false,
label: 'foo'
}, {
selected: true,
label: 'bar'
}, {
selected: true,
label: 'baz'
}
];
$scope.selectedRecords = ($scope.records.filter(function(record) {
return record.selected;
})).length;
$scope.setSelected = function(record) {
if (record.selected) {
record.Selected = true;
$scope.selectedRecords += 1;
} else {
record.selected = false;
$scope.selectedRecords -= 1;
}
};
});
Проблема в том, что вы не определили record
в области. Если вы добавите что-то вроде этого к контроллеру:
$scope.record = {};
Тогда все должно работать.
Теперь, если вы находитесь в блоке ng-repeat, все будет сложнее.
ng-change
вместоng-click
? Что не работает точно? Не могли бы вы предоставить CodePen, который воспроизводит ошибку? :-)