我很难在Rails上配置AngularJS路由。我知道这是一个基本概念并且已经阅读:http://start.jcolemorrison.com/setting-up-an-angularjs-and-rails-4-1-project/,但似乎我仍然有点困惑。
我目前有一个Rails routes.rb文件,我想先设置它来处理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 =&gt; [:en],:formats =&gt; [:html],:handlers =&gt; [:erb,:builder,:raw,:ruby,:jbuilder ,:coffee,:haml]}。搜索:*&#34; / Users / simon_zhu / Documents / carmel / app / views&#34; *&#34; /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/jasmine-rails-0.9.0/app/views" *&#34; /Users/simon_zhu/.rvm/gems/ruby-2.1.0/gems/devise-3.2.4/app/views"
答案 0 :(得分:0)
您需要在Application#index
操作中呈现视图。
您的routes.rb
文件正在点击ApplicationController
的{{1}}操作,默认为#index
,如果您没有设置自己的render :index
render
1}}或redirect
动作。您的错误来自Rails无法找到此视图。
最简单的方法是在application
下创建一个views
文件夹并制作一个简单的index.html.erb
。这将默认使用application.html.erb
中的app/views/layout
布局文件,该文件应链接您的application.js
清单,该清单应列出您的Angular文件。
\_ app
\_ views
\_ application
| - index.html.erb
\_ layouts
| - application.html.erb
只要您的app/views/application/index.html.erb
和app/views/layout/application.html.erb
合并了ng-app
和ng-view
,您就应该可以看到Angular代码正在运行。