У меня есть угловой ретранслятор, который показывает результаты моего массива JSON ниже. Теперь только сегодня элементы имеют значение: "vandaag = true".
16: {id: "55", datum: "2015-08-17", punt: "dsfga", tellen: 2,…}
datum: "2015-08-17"
id: "55"
punt: "dsfga"
tellen: 2
vandaag: false
17: {id: "63", datum: "2015-08-18", punt: "lkjsdfg", tellen: 1,…}
datum: "2015-08-18"
id: "63"
punt: "lkjsdfg"
tellen: 1
vandaag: true
В моем ретрансляторе я дал предметы сегодняшнего класса.vandaag:
<div ng-repeat="r in results | filter:dateFilter" class="relatief" ng-class="{vandaag: r.vandaag === true}">
CSS понимает это правильно, но JQuery этого не делает. Я привык считать элементы по классам, но, похоже, они не существуют, когда я проверяю класс. Потому что теперь он возвращает 0:
$http.post('../ajax_crud.php', {positief: 'get', userId: userId, datumText: datumText}).
success(function (data, status, headers, config) {
$scope.results = data;
var vandaag = $('.vandaag').length;
console.log(vandaag);
});
Поэтому мой вопрос: как правильно подсчитать элементы с классом.vandaag?
Вы просто считаете отфильтрованные результаты, например:
<!--Assign the filtered list to a new var called "filtered"-->
<div ng-repeat="r in filtered = (results | filter:dateFilter)" class="relatief" ng-class="{vandaag: r.vandaag === true}">
//Access new "filtered" var
var vandaag = $scope.filtered.filter(function(r) {
return r.vandaag === true;
}).length;
$rootScope.$digest()
прежде чем считать класс