Показать сообщение отдельно
  #6 (permalink)  
Старый 09.11.2016, 12:20
Аспирант
Отправить личное сообщение для neon_tmn Посмотреть профиль Найти все сообщения от neon_tmn
 
Регистрация: 29.04.2010
Сообщений: 51

.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>
Ответить с цитированием