Всем привет!
С помощью ng-click я показываю сервисы нажатой категории, при этом в адресной строке браузера id категории не пишется, так как все происходит в одном темплейте (как мне и надо). Как вручную сформировать ссылку в адресной строке, чтобы потом можно было ввести эту ссылку и браузер автоматический перейдет на нужную категорию?
<div class="category" ng-repeat="category in categories">
<a href="javascript:void(0)" class="link_service" ng-click="showServices(category.id)">
{{category.name}}
</a>
</div>
<div style="clear: both;"></div>
</div>
<div class="services">
<div class="category_name">
{{selectedCategory.name}}
<i class="sort_category icon-th-list" ng-click="sortServices()" title="Сортировка сервисов"></i>
<i class="edit_category icon-pencil" ng-click="editCategory(selectedCategory.id)" title="Редактирование категории"></i>
</div>
<ul class="service_list" id="serviceList">
<li class="li_service" ng-repeat="service in selectedCategory.services">
<a href="javascript:void(0);" class="a_service">
<b>{{service.name}}</b>
</a>
<span class="star" ng-class="{'on' : service.favorite}" ng-click="addToFavorite(service.id)"></span>
</li>
</ul>
</div>
var servicesCatalog = angular.module('servicesCatalog', [
'catalogControllers'
]);
// роутинг
servicesCatalog.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/catalog', {
templateUrl: 'views/catalog.html',
controller: 'Catalog'
}).
when('/favorites', {
templateUrl: 'views/favorites.html',
controller: 'Favorites'
}).
when('/applications', {
templateUrl: 'views/applications.html',
controller: 'Applications'
}).
when('/catalog/:categoryId/:serviceId', {
templateUrl: 'views/service-detail.html'
}).
otherwise({
redirectTo: '/catalog'
});
}]);
// контроллер
catalogControllers.controller('Catalog', ['$scope', '$http', '$rootScope','$location', '$routeParams',
function($scope, $http, $location, $routeParams, $rootScope) {
$http(
{
method: 'POST',
url: 'ajax/ajax.php',
data: {action: 'showCategories'}
}).
success(function(data, status, headers, config) {
console.log(data);
$scope.categories = data;
}).
error(function(error, status, headers, config) {
console.log('ERROR => ' + error);
});
$scope.showServices = function (categoryId) {
$scope.selectedCategory = $scope.categories[categoryId];
};
}]);