如何让rails与AngularJS一起工作

时间:2014-06-17 21:35:04

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

现在我已经用了几个小时来将轨道工作与角度整合在一起,我即将放弃。我正在学习本教程:

link to tutorial

' 我让它更简单

在我的application.js中,我需要以下内容:

//= require jquery
//= require jquery_ujs
//= require angular 

在我的main.js.coffe中,我要求获取以下js文件:

#= require_self
#= require_tree ./controllers/main

在我的app/assets/javascripts/controllers/main/mainIndexCtrl.js.cofee中,我的行与他在教程中的行相同:

@IndexCtrl = ($scope) ->
  $scope.title = "My blog"

所以这是有趣的部分:

我的"大师" view与教程完全相同:

<!DOCTYPE html>
<html ng-app>
<head>
  <title>Blog</title>
  <%= stylesheet_link_tag    "application", media: "all" %>
  <%= javascript_include_tag "application", controller_name %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

所以从理论上讲,当我在http://localhost:3000/main/Index运行我的应用程序时,我应该得到与他完全相同的结果,但不是。

我收到运行时错误,该错误表示它在(in /app/assets/javascripts/main.js.coffee)处失败,而没有其他错误。我真的无法弄清楚到底出了什么问题。如果我用一些随机字符串切换controller_name,例如&#39; hugabuga&#39;页面加载,当然角度不会工作,因为没有链接到控制器索引。

我对cofee脚本不太熟悉,但是控制器的定义方式可能不正确?

1 个答案:

答案 0 :(得分:0)

在另一个教程中,我不得不添加另一个Gem

gem 'angular-rails-templates'

并修改application.js以包含:

//= require jquery
//= require jquery_ujs
//= require angular/angular
//= require angular-route/angular-route
//= require angular-rails-templates
//= require_tree .

列出JS的顺序也很重要。确保文件中的内容与视频中显示的内容相同。