【发布时间】:2014-09-16 21:05:34
【问题描述】:
我很难在 Rails 上配置 AngularJS 路由。我知道这是一个基本概念并已阅读:http://start.jcolemorrison.com/setting-up-an-angularjs-and-rails-4-1-project/,但似乎我仍然有点困惑。
我目前有一个 Rails routes.rb 文件,我想将其设置为首先处理 angularRoutes,如果它不是 angularRoutes,则回退到 rails。上面的链接说包括以下两行代码:
root 'application#index'
get '*path' => 'application#index'
这会将根页面定向到应用程序控制器的索引方法。在那种情况下,我不太确定 Angular 是如何有机会进行路由的。
我不确定在我的 Rails 项目的 routes.rb 文件中放置什么,以便 Angular 路由首先执行。
我的角度路线:
# Define the carmel application
@carmel = angular.module('carmel',
'ui.bootstrap',
'ngRoute',
'templates',
])
# Define our routes
@carmel.config([
'$routeProvider',
'$locationProvider',
($routeProvider, $locationProvider) ->
console.log("HEre1");
$routeProvider.when '/',
templateUrl: '<%= asset_path("production/index.html") %>'
controller: 'ProductionIndexCtrl'
resolve: {
}
# So we don't have "#" in the url's. Magic.
$locationProvider.html5Mode true
])
(我希望根路径指向我的 angular templateURL 和控制器,目前我遇到了错误。)
ActionView::MissingTemplate at /
缺少带有 {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee 的模板应用程序/索引, :haml]}。在以下位置搜索:*“/Users/simon_zhu/Documents/carmel/app/views”*“/Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/jasmine-rails-0.9.0/app/views” * "/Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/devise-3.2.4/app/views"
【问题讨论】:
-
你在哪里定义你的观点?
-
我试图渲染的视图在 app/assets/templates/production/index.html.erb 下,控制器在 app/assets/javascripts/controllers/ProductionIndexCtrl.js.coffee 下
标签: javascript ruby-on-rails angularjs ruby-on-rails-3