Как обрабатывать маршруты в Rails с AngularJS

0

Я изучаю 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 все эти маршруты должны вернуть точку входа в приложение.

1 ответ

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню