【问题标题】:Get Rails route URL in AngularJS route config在 AngularJS 路由配置中获取 Rails 路由 URL
【发布时间】:2014-04-15 20:58:41
【问题描述】:

我正在尝试将 Angular 路由集成到 Rails 应用程序中。为了使事情保持干燥并防止在开发应用程序时路由发生变化时出现问题,我想防止在$routeProviderwhen 属性中对URL 进行硬编码。我的 Angular 文件是 .js.coffee.erb 脚本,允许进行咖啡和 erb 解析。

注意:client_views 只是一个渲染 params[:id] 属性的控制器,可以正常工作。

例子:

angular.module('Scheduler', ['ngRoute'])
.config(['$routeProvider', '$locationProvider', ($rp, $lp) ->
  $rp.when('/', {
    templateUrl : '/client_views/index/'
  })
  .when('/employees/new/', {
    templateUrl : '/client_views/employee_new/  '
  })
  $lp.html5Mode(true)
  @
])

理想情况下,我想要这样的东西:

angular.module('Scheduler', ['ngRoute'])
.config(['$routeProvider', '$locationProvider', ($rp, $lp) ->
  $rp.when('/', {
    templateUrl : '<%= some_rails_url_fn :controller => "client_views", :action => "index" %>'
  })
  .when('/employees/new/', {
    templateUrl : '<%= some_rails_url_fn :controller => "employee", :action => "new" %>'
  })
  $lp.html5Mode(true)
  @
])

我看到了 url_for 方法,但它显然已被弃用(我使用的是 Rails 4),并且它引发了未定义的方法错误。

此外,这是在 Rails 应用程序中使用 Angular 路由的正确方法吗?路线.rb:

Scheduler::Application.routes.draw do
  root :to => "home#index"

  # Routes to current page
  match '/', :to => 'home#index', via: [:get]
end

我感觉重定向到“home#index”会在某个时候中断...

【问题讨论】:

    标签: angularjs ruby-on-rails-4 routing


    【解决方案1】:

    url_for 没有被弃用,它只是在预编译资产的上下文中不能作为助手访问。您可以通过专门引用它们来访问 url 助手。

    <% url = Scheduler::Application.routes.url_helpers %>
    
    angular.module("Scheduler", ["ngRoute"]).config [ "$routeProvider", "$locationProvider", ($rp, $lp) ->
    
      $rp.when "/",
        templateUrl : "<%= url.url_for controller: :client_views, action: :index %>"
    
      .when "/employees/new/",
        templateUrl : "<%= url.url_for controller: :employee, action: :new %>"
    
       $lp.html5Mode(true)
       this
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      相关资源
      最近更新 更多