У меня есть ng-repeat
:
<div ng-repeat="num in arr" ng-class="selected(num.id) ? 'active' : ''">
<span>{{num.name}}</span>
</div>
Также selected()
метод selected()
который проверяет, активен ли элемент:
$scope.selected = function(num){
angular.forEach($scope.categorySelect, function (value, key) {
if(value.id == num){
// Here works console.log()
return ($scope.categorySelect[key].checked == true) ? false : true;
}
})
}
Но для меня это не работает.
Синтаксис для ng-class
должен быть следующим:
<div ng-repeat="num in arr" ng-class="{ 'active': selected(num.id) }">
Также ваш $scope.selected()
ничего не возвращает. Вы возвращаете логическое значение в своей анонимной функции, которая прерывает forEach
.
Измените свою функцию следующим образом
$scope.selected = function (num) {
var isSelected = false;
angular.forEach($scope.categorySelect, function (value, key) {
if(value.id == num){
isSelected = $scope.categorySelect[key].checked;
return;
}
});
return isSelected;
}
Должен быть:
<div ng-repeat="num in arr" ng-class="{'active': selected(num.id) }">
<span>{{num.name}}</span>
</div>
Синтаксис ng-класса неверен:
ng-class="{'active' : selected(num.id)}"