【发布时间】:2014-04-15 20:58:41
【问题描述】:
我正在尝试将 Angular 路由集成到 Rails 应用程序中。为了使事情保持干燥并防止在开发应用程序时路由发生变化时出现问题,我想防止在$routeProvider 的when 属性中对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