.controller("IndexCtrl", function ($scope, $http) {
$scope.setCurrentPageForCategory = function(CurrentPageForCategory){ //функция для присвоения значения в других контроллерах и передачи в родительский controller
$scope.CurrentPageForCategory = CurrentPageForCategory;
};
$http.get("http://localhost/modules/index/index.php").then(function(response) {
$scope.categories = response.data.categories;
}, function(error) {});
});
// Директива в которой строится аккордион. Выглядит все это очень плохо, не красиво и не правильно.
.directive("categoriesList", function($compile) {
return function(scope, element, attributes) {
var attrValue= attributes['categoriesList'];
var data=scope[attrValue];
if (angular.isArray(data)) {
for (var i = 0; i < data.length; i++) {
var e = angular.element("<h3>");
element.append(e);
e.text(data[i].name);
var e = angular.element("<div>");
element.append(e);
for (var j = 0; j < data[i].subrecords.length; j++) {
var content = $compile(e.html() + '<a ui-sref="{{CurrentPageForCategory}}.category({category:'+data[i].subrecords[j].id+'})">'+data[i].subrecords[j].name+'</a>' + '<br>')(scope);
e.html(content);
}
}
}
$("#accordion h3").addClass('accordion-not-active');
$("#accordion h3").click(function() {
$(this).toggleClass('accordion-active accordion-not-active');
});
$('#accordion').accordion();
}
});
Шаблон HTML
<div id="accordion" ng-if="categories" categories-list="categories"></div>