【问题标题】:Why is Angularjs code not rendering in rails even though Angularjs is running?为什么即使 Angularjs 正在运行,Angularjs 代码也不会在 Rails 中呈现?
【发布时间】:2014-08-24 01:49:59
【问题描述】:

我正在尝试在我的 Rails 应用程序中实现一些 angularjs。

我已经完成了以下操作,并且 Angular 正在运行(我在开发控制台中输入了 angular),但没有在我的 HAML 文件中呈现/执行我的 Angular 代码。

一个。向我的 gemfile 添加了角度:

source 'https://rails-assets.org'
gem "rails-assets-angular"
group :development, :test do
  gem 'rails-assets-angular-mocks'
end

b.在 app/assets/javascripts/application.js 中添加了 //= require angular//= require angular/admin/adminApp(我的 Angular 应用文件)

c。通过将%html{ 'ng-app' => true } 添加到布局 app/views/layouts/application.html.haml 中的标记来启用 Angular

d。添加了一个adminApp:

adminApp = angular.module('adminApp', ['ngResource'])

e。添加和adminController:

'use strict';
angular.module('adminApp')
  .controller('AdminCtrl', function ($scope, $http) { 
  $scope.test = "This is working!"
  });

f。将以下内容添加到我的应用程序的 index.html.haml 之一:

更新:更改了 haml,使角度元素位于 ng-controller div 内

%div{"ng-controller" => "AdminCtrl"}
   {{test}}
   %p Hello {{"World" + "!"}}

加载该页面后,我得到了非角度化的输出:

{{测试}} 你好{{“世界”+“!”}}

从我读过的所有内容来看,它应该可以工作。只是不确定我哪里出错了。我错过了什么吗?

【问题讨论】:

  • 除非您错误地将其粘贴到 SO 中,否则您的 {{test}} 不在您的 %div{"ng-controller" => "AdminCtrl"}
  • @Jon 感谢您了解这一点。修复了它,仍然没有渲染角度。

标签: ruby-on-rails angularjs haml


【解决方案1】:

您似乎在注入ngResource。 默认情况下它不包含在 Angular 中,所以如果你想使用它,你需要添加以下内容:

Gemfile中:gem "rails-assets-angular-resource"

application.js//= require angular-resource

还将%html{ 'ng-app' => true } 更改为%html{'ng-app' => "adminApp"}

【讨论】:

  • 这一切都很好。我做了这些改变,但仍然没有。还有什么我们应该尝试的吗?我这样做对吗?
  • 没什么。就 javascript 错误而言,一切都很干净。再次感谢您的帮助,非常感谢!
  • 其实刚才又查了一下,有两个:
  • Uncaught TypeError: undefined is not a function common.js?body=1:3
  • Uncaught TypeError: undefined is not a function contact_us_home.js?body=1:13
猜你喜欢
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 2014-05-10
  • 2014-11-09
  • 2021-05-05
  • 2023-03-14
  • 2012-08-10
  • 1970-01-01
相关资源
最近更新 更多