JSFiddle - React, Tailwind, and code Playground
HTML
<ion-list>
<div ng-repeat="obj in categorias">
<ion-item class="item-stable"ng-class="{active: isGroupShown(obj)}"
ng-click="toggleGroup(obj)">
<i class="icon" ng-class="isGroupShown(obj) ? 'ion-minus' : 'ion-plus'"></i>
{{obj.descricao}}
</ion-item>
<ion-item class="item-accordion"ng-click="pesquisarSubAnuncio(obj.id)" ng-repeat="subcategoria in subcategorias" ng-show="isGroupShown(obj)">
{{subcategoria.descricao}}
</ion-item>
</div>
</ion-list>
JavaScript
$scope.toggleGroup = function(obj) {
if ($scope.isGroupShown(obj)) {
for(var i=0; i < $scope.categorias.length; i++){
if($scope.categorias[i].id == obj.id){
$scope.categorias[i].subB = $scope.listarSubCategorias(obj.id);
console.log($scope.categorias[i].subB);
}
}
$scope.shownGroup = null;
} else {
$scope.shownGroup = obj;
}
};
$scope.isGroupShown = function(obj) {
return $scope.shownGroup == obj;
};