【发布时间】:2013-01-02 05:44:01
【问题描述】:
我正在扩展一个 Rails gem,它为 Rails 应用程序生成 AngularJS 样式的脚手架,请参阅 https://github.com/explainer/angularjs_scaffold。我已将 CoffeeScript 语言支持添加到来自 https://github.com/patcito/angularjs_scaffold 的 fork 中。
当我尝试在生产模式下部署时,我收到了标题中提到的错误,并且 javascript 代码被 rails 资产管道缩小和混淆了。我在http://docs.angularjs.org/tutorial/step_05 阅读了“关于缩小的说明”,并使用了那里提到的“数组”设计模式,但应用程序仍然中断。
脚手架生成 2 个应用级 Angular 控制器、一个虚拟 WelcomeCtrl 和一个 CsrfCtrl 来处理安全令牌。对于每个模型,生成 4 个 REST 样式的控制器,索引、显示、创建、编辑。
我被难住了。我要求一些好人用一个简单的模型构建一个小型 Rails 应用程序,比如说
rails g scaffold Todo body:string, done:boolean
请将我的 gem 包含在 Gemfile 的 :development 组中
gem 'angularjs_scaffold', git: "git@github.com:explainer/angularjs_scaffold.git"
并按照 README.md 中的说明安装生成器并针对您的模型运行它,
rails g angularjs:install --language=javascript
rails g angularjs:scaffold Todos
然后,检查添加到 app/javascripts 文件夹中的文件:
- csrf_controller.js
- todos.js
- todos_controller.js
- welcome_controller.js
看看你是否能看到我没有正确处理 angularjs 依赖注入要求的地方。
我非常感谢在这件事上提供的任何帮助。
附:我在https://github.com/explainer/plink 添加了一个示例应用程序 Plink,因此只需检查上述文件并找出我的错误或遗漏。
我已经在 github 上公开了测试应用,抱歉疏忽。
【问题讨论】:
-
最后一个链接不正确。请修复。
-
我无法访问您的示例应用程序,但可能的原因是您正在隐式注册控制器。尝试使用 $controllerProver.register() 来注册你的控制器。
标签: ruby-on-rails dependency-injection angularjs