angular.module('zuykov') .controller('NiceCtrl', ['$scope', '$rootScope', function ($scope, $rootScope) { $scope.selectedCategory = 1; $scope.filterByCategory = function (nice_class) { var category = $scope.categories[$scope.selectedCategory - 1]; return (category.classes.indexOf(nice_class.id) !== -1); }; $scope.selectCategory = function (id) { $scope.selectedCategory = id; }; $scope.setClasses = function () { var classes = []; $(".service-trademarks-class-form form input[type=checkbox]:checked").prop('checked', false); for(var i in $scope.nice) { var el = $scope.nice[i]; if(el.selected) { classes.push(el.id); $(".service-trademarks-class-form form input[value=" + el.id + "]").prop('checked', true); } } $rootScope.classes_values = classes; $rootScope.classes = classes.length || 1; if($rootScope.classes > 3) { $rootScope.kz_extra_classes = $rootScope.classes - 3; } if($rootScope.classes > 5) { $rootScope.extra_classes = $rootScope.classes - 5; } $scope.countCategories(); }; $scope.countCategories = function () { for(var index in $scope.categories) { var category = $scope.categories[index]; category.selected = []; for(var cl_i in category.classes) { var class_el = $scope.nice[category.classes[cl_i]-1]; if(class_el.selected) { category.selected.push(class_el.id); } } } }; $scope.getClasses = function () { var classes = $rootScope.classes_values; for(var i in classes) { var class_id = classes[i]; $scope.nice[class_id-1].selected = true; } $scope.countCategories(); $scope.setClasses(); }; }]);