Роутинг в laravel+angularjs?

Пытаюсь сделать связку laravel и angular.
И вижу совершенно разные способы роутинга - ngRoute и ui-routing. Сходу не могу понять что есть что...
задача банальная сделать навигацию без перезагрузки страницы...

<ul class="nav navbar-nav">
                    <li><a href="/home">Home</a></li>
                    <li><a href="/sources">Sources</a></li>
                </ul>


в app.js
var myApp = angular.module('myApp', ['ngRoute','sourceCtrl', 'sourceService']);

myApp.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/sources', {
        url: '/sources',
        controller: 'sourceCtrl'
      }).
      when('/home', {
        url: '/home',
        controller: ''
      }).
      otherwise({
        redirectTo: '/'
      });
  }]);


По идее я должен с помощью "местного" роутинга вызвать ларавель контроллер, который отдаст представление...
но не срабатывает. Пробовал и с tepmplateUrl. Использую blade
Буду признателен за совет куда от забора копать...
  • Вопрос задан
  • 750 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
На роутинг ларавеля забей. Сделай главную страничку / в роутинге ларавеля, отдай шаблон, а дальше уже юзай роутинг самого ангуляра. Какой именно - решай сам. Для роутов на апи (обращение angular'а к самому сайту, backend'у) выдели поддомен либо просто сделай группу с префиксом.

Blade вообще не трогай. Выведи чистую хтмлку, а сами данные заполняй ангуляром. Если очень надо все-таки некоторые переменные из чистого ларавеля - поменяй тэги, инструкций полно. Еще можно использовать {{}} под blade, и raw тэги под angular - @{{}}. templateUrl - ссылка на шаблон. Должен лежать в папке public. Собственно что-бы вывести шаблон, в самой html-ке должен быть какой-нибудь элемент, а к нему прикреплен аттрибут "ng-view".

А вообще - гайдов море. Вбей в гугле "laravel and angular app".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы