Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.05.2016, 11:07
Интересующийся
Отправить личное сообщение для mdlv Посмотреть профиль Найти все сообщения от mdlv
 
Регистрация: 14.05.2012
Сообщений: 16

Django + Angular JS - не работает роутинг
Задача: реализовать роутинг на стороне ангуляра, на стороне Django REST - только работа с собственным api.

Возник вопрос, как скоординировать работу urls.py у Django и routerProvider у Angular? Сейчас отрабатывают только urls.py, роутинг не срабатывает. По / открывается index.html.

В основном index.hmtl подключаю angular-route.js и js для роутинга:

<script>
        var app = angular.module('myApp', ['ngRouter']);   
        app.constant('DJANGO_SETTINGS', {
                staticUrl: '{{ STATIC_URL }}',
                mediaUrl: '{{ MEDIA_URL }}'
            });
        app.config(stateConfig);
        stateConfig.$inject = ['$routerProvider', 'DJANGO_SETTINGS'];
    
    function stateConfig($stateProvider, DJANGO_SETTINGS) {
           $routeProvider
            .when('/', {
                 controller: 'someController1',
                 templateUrl: DJANGO_SETTINGS.staticUrl + 'myapp/templates/template1.html'
            }
            .when('/page1/:id', {
                 controller: 'someController2',
                 templateUrl: DJANGO_SETTINGS.staticUrl + 'myapp/templates/template2.html'
            }
    };

</script>


Также подключаю js с контроллерами someController1 и someController2, которые должны посредством запроса к api заполнять соответствующие шаблоны.

В Django REST urls.py:

Код:
  urlpatterns = patterns( '',
       url(r'myapi/'), include('myapp.urls')),
       url(r'$', HomePageView.as_view()),
    ) + static.static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
+ static.static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
HomePageView отдает index.html через TemplateView. Т.е. далее по идее должен срабатывать роутинг ангуляра.

В settings.py в TEMPLATE_CONTEXT_PROCESSORS добавил две записи:
Код:
'django.core.context_processors.media' и 'django.core.context_processors.static'.
Переместил шаблоны template1.html и template2.html в /static/myapp/templates/, index.html лежит /myproject/templates.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перенести логику работы с шаблонами из Django в Angular? mdlv Angular.js 0 16.05.2016 10:05
Приглашаем разработчиков (проектный опыт по Angular JS) Михаил2016 Работа 0 18.03.2016 02:42
JS Яндекс.Карт - alert() работает, а присваивание переменной - нет, подскажите Vova_Sidorov Общие вопросы Javascript 1 06.09.2014 11:43
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41
JS меню работает на обычной html странице, а на юкозовском движке нет. adware Я не знаю javascript 10 16.05.2009 16:48