Роутинг Angular

Anque

Постоялец
Регистрация
13 Дек 2016
Сообщения
70
Реакции
4
столкнулся с проектом на angular, пытаюсь разобраться.
вряд ли кто-то подскажет конкретный ответ, но, возможно, знакома архитектура - не думаю, что здесь что-то уникальное.
в данный момент есть проекты (портфолио), которые имеют урлы localhost/#/projects/14
, где 14 - id проекта, само собой.
вопрос, как бы сделать так, чтобы в урле было не 14, а наименование проекта? где-то должно быть соответствие, но не могу найти его.

например, я нашёл место, где выводятся элементы портфолио на гл. странице:
Код:
                    <!-- PORTFOLIO ITEM -->
                    <div name ng-model="master.main.projects" class="work-item {{project.size}} {{project.group}}"
                         data-ng-repeat="project in master.main.projects | reverse" on-finish-render="ngRepeatFinished">
                        <!--| limitTo:limit-->
                        <a href="#/projects/{{master.main.projects.length - $index-1}}">
                            <img ng-src="{{project.src | replaceSrc}}" alt="">
                            <div class="work-caption font-alt">
                                <h3 class="work-title">{{project.name}}</h3>
                                <!--<div class="work-descr">-->
                                    <!--{{project.group}}-->
                                <!--</div>-->
                            </div>
                        </a>
                    </div>
где генерится урл видно - #/projects/{{master.main.projects.length - $index-1, если заменить это на #/projects/{{project.name, то ссылка изменится, но там будет пусто.
 
Код:
                 <div name ng-model="master.main.projects" class="work-item {{project.size}} {{project.group}}"
                         data-ng-repeat="project in master.main.projects | reverse" on-finish-render="ngRepeatFinished">
                        <!--| limitTo:limit-->
                        <a ng-href="{{'#/projects/'+project.name}}">
                            <img ng-src="{{project.src | replaceSrc}}" alt="">
                            <div class="work-caption font-alt">
                                <h3 class="work-title">{{project.name}}</h3>
                                <!--<div class="work-descr">-->
                                    <!--{{project.group}}-->
                                <!--</div>-->
                            </div>
                        </a>
                    </div>
сделал:
эффект такой же, как если бы я переписал href, как я делал ранее - кидает на ссылки вида Для просмотра ссылки Войди или Зарегистрируйся
и не подгружает контент, ибо не может определить нужный
 
А бекенд на чём? по идее, нужно изменить запрос вида
select * from projects where id=$id
на
select * from projects where name=$name
Так же необходимо, чтобы поле name было уникально в пределах таблицы.
 
php, nginx

upd: не могу даже найти откуда инфа собирается, на хостинге даже ньет БД-аккаунта. видимо, json.
upd2: видимо, отсюда берется инфа (т.е. БД и ньет:(
Код:
<?php

header('Content-Type: application/json;charset=utf-8');
header("Access-Control-Allow-Origin: *");
switch ($_REQUEST['action']) {
    case 'main':
        $data = file_get_contents('data/main.json');
        echo json_encode($data);
        break;
    case 'about':
        $data = file_get_contents('data/about.json');
        echo json_encode($data);
        break;
    case 'services':
        $data = file_get_contents('data/services.json');
        echo json_encode($data);
        break;
    case 'photo':
        $data = file_get_contents('data/photo.json');
        echo json_encode($data);
        break;
    case 'entertainment':
        $data = file_get_contents('data/entertainment.json');
        echo json_encode($data);
        break;
    case 'contacts':
        $data = file_get_contents('data/contacts.json');
        echo json_encode($data);
        break;
    case 'common':
        $data = file_get_contents('data/common.json');
        echo json_encode($data);
        break;
    case 'emails':
        $data = file_get_contents('data/mail_log.json');
        echo json_encode($data);
        break;
    case 'settings':
        $data = file_get_contents('data/settings.json');
        echo json_encode($data);
        break;
}

?>
 
Последнее редактирование:
В браузере если открыть вкладу Сеть - при переходе идут запросы на сервер? Может быть роутинг не грузит данные, а берет JSON файлы и при переходе подставляет нужную инфу...
 
Назад
Сверху