2015-09-29 3 views
0

Я изучаю AngularJs с рельсами, и у меня есть пост-контроллер в моем приложении. Ниже приведены мои маршрутыКак обрабатывать маршруты в Rails с AngularJS

Rails.application.routes.draw do 

    root 'application#index' 
    get 'posts/index' 
    get 'posts/create' 
    get 'posts/show' 

end 

index.html.erb

<div ui-view></div> 

Ниже приведены мои маршруты angularjs

angular.module('myApp', ['ngAnimate','ui.router','templates']) 
.config(function ($stateProvider, $urlRouterProvider, $locationProvider) { 

    $stateProvider 
     .state('AllPosts', { 
      url: '/posts/index', 
      templateUrl: 'posts.html' 
     }) 
     .state('createPost', { 
      url: '/posts/create', 
      templateUrl: 'create.html' 
     }) 
     .state('showPost', { 
      url: '/post/show', 
      templateUrl: 'show.html' 
     }) 


}); 

Но у меня есть путаница, когда я ударил какой-то запрос в браузере, то как эти маршруты будут работать. Каков поток запросов и как будет отображаться правильный шаблон.

+0

Основываясь на вашей угловой конфигурации, они не будут ... ваши угловые дорожки будут иметь хэш в них. Если вы хотите удалить хэш с помощью 'html5Mode', все эти маршруты должны вернуть точку входа приложения – charlietfl

ответ

0

AngularJs - это только клиентская сторона. Маршруты, которые вы настроили в uiRouter, задают только поведение в браузере.

В вашем примере, когда браузер загрузил угловое приложение, он реализует маршрутизацию, указанную в javascript, так что, когда URL-адрес в браузере /#/posts/index, он загрузит содержимое URL-адреса posts.html в div с помощью ui-view атрибут. Это происходит без какого-либо подключения к маршрутам рельсов, которые выполняются только на http-сервере.

Смежные вопросы