Показать сообщение отдельно
  #1 (permalink)  
Старый 23.10.2014, 15:39
Интересующийся
Отправить личное сообщение для KOPC1886 Посмотреть профиль Найти все сообщения от KOPC1886
 
Регистрация: 02.10.2013
Сообщений: 22

Формирование ссылок
Всем привет!

С помощью 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];
        };
}]);
Ответить с цитированием