javascript - Angular 路由无法正常工作

标签 javascript ruby-on-rails ruby angularjs ruby-on-rails-4

因此,我尝试在 Ruby on Rails 应用程序中尝试 Angular 路由。

问题是,当我降落在一条路线上时,比如说'/',并且我有一个 Angular 路由,当我降落在它上面时,它应该在我的 route 加载一个模板所需的目录,那么我的 Rails 服务器将抛出此错误:

Started GET "/templates/index.html.erb" for 127.0.0.1 at 2014-12-02 18:03:39 +0200
ActionController::RoutingError (No route matches [GET] "/templates/index.html.erb"):

所以基本上它似乎不会尝试从文件夹加载我的文件,而是尝试将我告诉 Angular 路由的路径放入 URL,然后发出请求?

因为如果我将 templateUrl: 替换为 /users(这是我的应用程序中以 html 响应的实际路由),那么它将有效地路由到它。但这不是我想要的行为。

我希望 Angular 将我的 ng-view 中的 html 模板替换为我输入调用的路由时指定的模板。

这是我的 Angular 路由代码:

App = angular.module("App", ['ngRoute', 'growlNotifications'])

    App.config ($httpProvider) ->
        authToken = $("meta[name=\"csrf-token\"]").attr("content")
        $httpProvider.defaults.headers.common["X-CSRF-TOKEN"] = authToken

    App.config ($routeProvider, $locationProvider) ->
        $locationProvider.html5Mode true
        $routeProvider
            .when '/',
                templateUrl: 'templates/index.html.erb',
                controller: 'VisitorsCtrl'
            .when '/users',
                templateUrl: '../../views/users/index.html.erb',
                controller: 'UsersCtrl'
            .otherwise redirectTo: "/"

此外,在我的 application.html.erb 中,我已将 base href 设置为 '/'

我的模板当前位置如下:app/assets/javascripts/Angular/templates,我的路由在 Angular 文件夹中定义

这可能是什么问题?

最佳答案

  1. 您想要获取 ERB 模板,您可能希望将 erb 更改为仅 html
  2. 您的模板位于错误的目录中,对于您想要的内容,您需要使用正确的路径,例如:“/assets/angular/templates/index.html”或将模板放入公共(public)目录“/public/templates”
  3. 如果您仍然想使用 ERB 来渲染模板,您将需要一些带有路由(config/routes.rb)的解决方案,该模板将页面 Controller 绑定(bind)到网址:/templates/sth.html,但我想这相当丑陋的解决方案。
  4. 我认为最适合您的解决方案是遵循此 great tutorial :) 他们将模板存储在 public/templates 目录中。

关于javascript - Angular 路由无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27253837/

相关文章:

ruby - 在 Ruby 中创建用于单元测试的虚拟服务器

javascript - 登录成功后如何更新ApolloClient授权头?

javascript - Angular 7 嵌套可观察量

javascript - 页面加载时隐藏的 div 闪烁

ruby-on-rails - Rails 找不到刚创建的数据库列

ruby-on-rails - 渲染 : collection? 时如何访问集合的其他元素

javascript - 表单验证未正确响应

javascript - 有可能从零件中获得完美的 svg 圆圈吗?

ruby-on-rails - ruby on rails 只加载 1 个 css 和 js 文件

javascript - 在 Rails 中提交表单,无需重新加载页面