Всем привет. Недавно начал изучать Angular и писать небольшое приложение. Столкнулся с небольшой проблемой.
У меня есть страница, на которой выводится список элементов, этот список формируется в зависимости от выбранного фильтра (т.е. выбирают по ссылке имя города и через запрос получаются данные с сервера). Код контроллеров и разметки представлен ниже:
<section id="showcase" ng-show="catalogShow == true">
<div class="container fadeOut">
<div class="row wow fadeInDown" data-wow-duration="500ms">
<div class="col-lg-12">
<!-- section title -->
<div class="title text-center">
<h2>Каталог <span class="color"></span></h2>
<div class="border"></div>
</div>
<!-- /section title -->
<!-- portfolio item filtering -->
<div class="portfolio-filter clearfix" ng-controller="Filter">
<ul class="text-center">
<li><a href="javascript:void(0)" ng-click="filterByCategory(-1)" class="filter" data-val="-1" data-filter="all">Все</a></li>
<li><a href="javascript:void(0)" ng-click="filterByCategory(1)" class="filter" data-val="1" data-filter=".march8">8 Марта</a></li>
<li><a href="javascript:void(0)" class="filter" data-val="15" data-filter=".happyBirtday">День Рождение</a></li>
<li><a href="javascript:void(0)" class="filter" data-val="48" data-filter=".romance">Романтика</a></li>
<li><a href="javascript:void(0)" class="filter" data-va="14" data-filter=".rose">Розы</a></li>
<li><a href="javascript:void(0)" class="filter" data-val="" data-filter=".toys">Игрушки</a></li>
</ul>
</div>
<!-- /portfolio item filtering -->
</div> <!-- /end col-lg-12 -->
</div> <!-- end row -->
</div> <!-- end container -->
<!-- portfolio items -->
<div class="portfolio-item-wrapper wow fadeInUp" data-wow-duration="500ms">
<ul id="og-grid" class="og-grid">
<!-- single portfolio item -->
<li class="mix app fadeInUp flowerItem" data-wow-duration="500ms" ng-repeat="item in catalogItems">
<a href="javascript:void(0)" data-largesrc="http://staging.test.ru{{item.MainImageUrl}}" data-title="{{item.Name}}" data-description="{{item.Name}}">
<img ng-src="http://staging.test.ru{{item.MainImageUrl}}" alt="{{item.Name}}" class="size-300x250">
<div class="hover-mask">
<h3>{{item.Name}}</h3>
<span>
<i class="fa fa-plus fa-2x"></i>
</span>
</div>
</a>
</li>
</ul> <!-- end og grid -->
</div> <!-- portfolio items wrapper -->
</section> <!-- End section -->
AngularJS
flApp.controller('Filter', function ($scope, $http) {
$scope.catalogItems = [];
$scope.filterByCity = function (cityId) {
$scope.catalogShow = true;
$scope.selectedCity = cityId;
var urlString = 'http://staging.test.ru/RegionId=' + cityId;
$http({
url: urlString,
headers: { " },
method: 'GET'
}).success(function (data, status, headers, config) {
$scope.catalogItems = data.Items;
});
};
$scope.filterByCategory = function (categoryId) {
var urlString = 'http://staging.test.ru/partnerRegionId=' + $scope.selectedCity;
$http({
url: urlString,
headers: { * },
method: 'GET'
}).success(function (data, status, headers, config) {
$scope.catalogItems = data.Items[0];
});
};
});
Урлы указаны тестовые. Когда срабатывает filterByCity то отображение обновляется, когда срабатывает filterByCategory, то отображение не срабатывает (хотя функция выполняется). Что то значит делаю не так. Хотелось бы получить ответ что не так, и почему? Заранее спасибо всем кто прочел этот вопрос.