如何使用AngularJS处理Rails中的路由

时间:2015-09-29 20:08:48

标签: ruby-on-rails angularjs

我正在学习带有rails的AngularJs,我的应用程序中有一个post控制器。以下是我的路线

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'
        })


});

但是当我在浏览器中遇到一些请求时,我感到困惑,那么这些路由将如何运作。请求的流程是什么以及如何显示正确的模板。

1 个答案:

答案 0 :(得分:0)

AngularJs是一个仅限客户端的框架。您在uiRouter中设置的路由仅指定浏览器中的行为。

在您的示例中,当浏览器加载了角度应用程序时,它将实现javascript中指定的路由,以便当浏览器中的URL为/#/posts/index时,它将加载URL {{1}的内容使用posts.html属性进入div。这种情况发生时没有任何连接到只在http服务器上运行的rails路由。