0

Я пытаюсь преобразовать одну из моих веб-страниц RoR в Angular, чтобы решить, хочу ли я перенести все мои интерфейсы в Angular.Рельсы на угловую миграцию - динамически загружать вкладки

У меня возникают проблемы с маршрутизацией - кажется, что маршруты, сконфигурированные с помощью рельсов, всегда «захватывают» запрос, и поэтому весь макет загружается снова, а не только шаблон в div ng-view.

Я пробовал несколько сообщений об этом типе миграции, но они обсуждают совершенно новую среду (что не так для меня), противоречат друг другу (или просто используют очень разные стили кодирования, что запутывает) , или просто завернуть, прежде чем все будет сделано.

То, что я до сих пор:

Главная Угловая файл

@dashboard = angular.module('dashboard',['dashboardServices','ngSanitize'], 
    ['$routeProvider', '$locationProvider', ($routeProvider, 
              $locationProvider) -> 
    $locationProvider.html5Mode(true) 
    $routeProvider.when('/', { 
     templateUrl: "/app/views/dashboard/promote.html.haml", 
     controller: 'PromoteCtrl' 
    }) 
    ]).config(["$httpProvider", ($httpProvider) -> 
    $httpProvider.defaults.headers.common['X-CSRF-Token'] = 
     $('meta[name=csrf-token]').attr('content') 
    ]) 


dashboardServices = angular.module('promoteServices', ['ngResource']). 
    factory('PromoteInitData', ['$resource', ($resource) -> 
     $resource('/dashboard-ng/promote-data.json', {}, { 
     query: { method: 'GET', isArray: true } 
     create: { method: 'POST' } 
     }) 
    ]) 

Поощрять сам контроллер (в настоящее время там действительно ничего нет):

@PromoteCtrl = @dashboard.controller('PromoteCtrl', 
    ['$scope', '$location', 'PromoteInitData'], 
    $scope, $location, $resource, PromoteInitData) -> 
    # Nothing at the moment 

Рельсы маршрут (следует удалить?):

get '/dashboard/promote', :to => 'dashboard#promote', :as => 'promote' 

Контроллер Rails, который будет отвечать на запросы API устанавливается с «respond_to: JSON», каждый конкретный метод, возвращающий соответствующий «respond_with» заявление, но это не имеет значения, как я не спрашиваю об API вызовы между Angular и Rails (пока :)), а скорее динамическая загрузка шаблона.

В макете Rails есть ng-приложение, настроенное в теге html, и я предоставляю контент сразу после div ng-view.

Любые провода? Я, очевидно, пропустил что-то важное.

ответ

0

Если у вас есть звонок <%= yield %> в вашем шаблоне, рельсы будут поставлять html из соответствующего файла (в данном случае /app/views/dashboard/promote.html.haml). Поскольку вы хотите иметь угловое содержание этого контента, у вас не должно быть <%= yield %> в вашем шаблоне, только ng-view. Таким образом, рельсы будут поставлять макет html, а угловые могут обрабатывать каждую страницу.

+0

Означает ли это, что я должен удалить маршрут рельсов? Или это требуется? Не знаете, как работает весь механизм. – CodeBender

+0

Нет, вам нужны маршруты, иначе вы получите 404. В принципе, вы хотите обслуживать одну и ту же угловую страницу независимо от маршрута, если это запрос html. – ptd