Я изучаю 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'
})
});
Но у меня возникает путаница, когда я нахожу запрос в браузере, а затем, как эти маршруты будут работать. Каков поток запросов и как будет отображаться правильный шаблон.
AngularJs является основой только клиентской стороны. Маршруты, которые вы настроили в uiRouter, задают только поведение в браузере.
В вашем примере, когда браузер загрузил угловое приложение, он выполнит маршрутизацию, указанную в javascript, так что, когда URL-адрес в браузере будет /#/posts/index
он загрузит содержимое posts.html
в div с атрибутом ui-view
. Это происходит без какого-либо подключения к маршрутам рельсов, которые выполняются только на http-сервере.
html5Mode
все эти маршруты должны вернуть точку входа в приложение.