Javascript.RU

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

Не появляется ссылка в адресной строке!
Всем привет!

Почему то не появляется ссылка в адресной строке при нажатии на элемент. Вот код.

//app
var servicesCatalog = angular.module('servicesCatalog', [
    'catalogControllers'
]);

servicesCatalog.run(function($rootScope, $http) {
    $rootScope.ajax = false;
    $rootScope.load_category = true;
});

servicesCatalog.config(['$routeProvider', function ($routeProvider) {
        $routeProvider.
            when('/catalog/:categoryId', {
                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',
                controller: 'Service-Detail'
            }).
            otherwise({
                redirectTo: '/catalog/:categoryId'
            });
}]);


// controller
var catalogControllers = angular.module('catalogControllers', [/*'ui.sortable'*/]);

catalogControllers.controller('TabController', ['$scope', '$location', '$http', '$rootScope',
    function($scope, $location, $http, $rootScope) {
        $scope.isActive = function(viewLocation)
        {
            return viewLocation === $location.path();
        };
}]);

catalogControllers.controller('Catalog', ['$scope', '$http', '$routeParams', '$rootScope',
    function($scope, $http, $routeParams, $rootScope) {
        $scope.load_services = true;

        if($rootScope.ajax == false && $rootScope.load_category == true)
        {
            $http(
                {
                    method: 'POST',
                    url: 'ajax/ajax.php',
                    data: {action: 'showCategories'}
                }).
                success(function(data, status, headers, config) {
                    console.log(data);

                    $rootScope.popular = data.shift();
                    $rootScope.categories = data;
                    $rootScope.ajax = true;

                    if($routeParams.categoryId.length != 0)
                    {
                        angular.forEach($rootScope.categories, function(value, key){
                            if(value.id == $routeParams.categoryId)
                            {
                                $scope.selectedCategory = $rootScope.categories[key];
                            }
                        });
                    }
                    else
                    {
                        $scope.selectedCategory = $rootScope.popular;
                    }

                    $rootScope.load_category = false;
                    $scope.load_services = false;
                }).
                error(function(error, status, headers, config) {
                    console.log('ERROR => ' + error);
                });
        }

        $scope.showPopular = function (event)
        {
            event.preventDefault();
            event.stopPropagation();
            $scope.selectedCategory = $rootScope.popular;
        };

        $scope.showServices = function (index, event) {
            event.preventDefault();
            event.stopPropagation();

            $scope.selectedCategory = $rootScope.categories[index];
            $scope.load_services = false;
        };
}]);



// template catalog

<div class="popular">
                <a href="#/catalog/{{popular.id}}" class="link_popular"ng-click="showPopular($event)">
                    <span class="img_popular"></span>
                    <span class="name_popular">{{popular.name}}</span>
                </a>
            </div>
            <div class="category" ng-repeat="category in categories">
                <a href="#/catalog/{{category.id}}" class="link_service" ng-click="showServices(category.id, $index, $event)">
                    {{category.name}}
                </a>
            </div>
            <div style="clear: both;"></div>
        </div>
        <div class="ajax_loading" ng-show="load_services" style="">
        </div>
        <div class="services" ng-hide="load_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="#/catalog/{{selectedCategory.id}}/{{service.id}}" class="a_service">
                        <b>{{service.name}}</b>
                        {{$index}}
                    </a>
                    <span class="star" ng-class="{'on' : service.favorite}" ng-click="addToFavorite(service.id)"></span>
                </li>
            </ul>
        </div>


Вот вид массива который я возвращаю в запрос (php)
$idCat = 122;
            $idServ = 780;
            for($i = 0; $i <= 5; ++$i)
            {
                if(0 === $i)
                {
                    $jsonData[$i]['id'] = $idCat;
                    $jsonData[$i]['name'] = 'Популярные';
                }
                else
                {
                    $jsonData[$i]['id'] = $idCat;
                    $jsonData[$i]['name'] = 'Категория '.$idCat;
                }

                for($k = 0; $k <= 5; ++$k)
                {
                    if(0 === $i)
                    {
                        $jsonData[$i]['services'][$k] = array(
                            'id' => $idServ,
                            'name' => 'Сервис популярные под номером '.$idServ,
                            'favorite' => false,
                            'main_category' => rand(123, 128),
                        );
                    }
                    else
                    {
                        $jsonData[$i]['services'][$k] = array(
                            'id' => $idServ,
                            'name' => 'Сервис категории '.$idCat.' под номером '.$idServ,
                            'favorite' => false,
                            'main_category' => rand(123, 128),
                        );
                    }
                    ++$idServ;
                }
                ++$idCat;
            }

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

Я понял, что если ключ массива совпадает с значением id , то ссылка пишется с адресной строке, а если нет, то не пишется...и как быть?
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2014, 15:27
Интересующийся
Отправить личное сообщение для KOPC1886 Посмотреть профиль Найти все сообщения от KOPC1886
 
Регистрация: 02.10.2013
Сообщений: 22

Может кто помочь пожалуйста???
Ответить с цитированием
  #4 (permalink)  
Старый 03.11.2014, 23:22
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

Круто что весь код здесь, но хотелось бы уточнения что не работает, что подставляется в ссылку и куда кликается чтобы получить ошибку. Вобщем надо локализовать проблему и(или) создать фидлер.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вместо текста через 25 секунд появляется ссылка Изучаю_JS Общие вопросы Javascript 20 10.10.2015 18:43
Ввод ссылка в адресной строке Alfer Элементы интерфейса 11 24.11.2013 20:30
Изменение юрл адреса в адресной строке браузера (Sandr) Общие вопросы Javascript 12 25.08.2011 09:24
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58
Как изменить адрес в адресной строке браузера? xqx Events/DOM/Window 2 24.04.2010 17:46