将角度文件存储在轨道中的最佳位置
Best place to store angular files in rails
我计划将我当前的应用程序转换为角度应用程序。我以前从来没有机会和有棱角的铁轨一起工作。我计划在rails应用程序中逐个功能地实现angular。但我仍然担心文件夹的结构。
关于在rails应用程序中保存角度文件的位置,有什么约定吗?
此外,angular是这种开发(逐个功能)的好候选者吗?还是我应该研究其他技术?
FDD(逐个功能开发)与MVC框架配合良好,Angular就是其中之一。
通常建议将JS文件(任何JS文件,而不仅仅是Angular文件)存储在app/assets/javascripts
中,以便Rails资产管道自动拾取它们。除此之外,没有任何约定,将它们存储在对你有意义的任何结构中。
我之所以这么说,是因为如果您的Angular代码变大,您最好将其从app
文件夹中提取出来。然后,您必须配置资产管道以使用您的新结构。
对于小型项目,我喜欢将我的Angular javascript文件保存在app/assets/javascripts/angular
中
app/assets/javascripts/angular
/controllers/
/directives/
/helpers/
/models/
/services/
apps.js
templates.js.erb
视图位于app/assets/templates
中。
我遇到的一个大障碍是让Angular视图与Rails的资产管道一起工作。在开发中,您不会注意到任何东西,但一旦您在production部署,并且资产管道启动,Angular就再也找不到视图了。
为了使资产管道为AngularJS视图服务,我必须创建一个模板缓存。
// templates.js.erb
(function(){
'use strict';
// version 0.01
// increase this every-time you deploy to production
angular.module('templates', []).run(['$templateCache', function($templateCache) {
<%
environment.context_class.instance_eval { include ActionView::Helpers::JavaScriptHelper }
app_root = File.expand_path('../../../', __FILE__)
templates = File.join(app_root, %w{templates ** *.html})
Dir.glob(templates).each do |f|
key = f.gsub(%r(^#{app_root}/templates/), '')
html = File.read(f).squish
%>
$templateCache.put("<%= key %>", "<%= escape_javascript(html) %>");
<% end %>
}]);
}());
然后,您必须在模块中注入templates
angular.module("myModule", ['templates']);
相关文章:
- 保存键控触发器时保持光标位置的最佳做法
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- 应用 API 响应转换的最佳位置
- Javascript:注册事件处理程序的最佳位置
- 将角度文件存储在轨道中的最佳位置
- 存储angularJs中解析方法的最佳位置
- 在Zend Framework中,哪里是放置自定义jquery和javascript的最佳位置
- 在HTML文档中插入JavaScript的最佳位置
- 什么是存储和组织NOSQL数据库图像的最佳位置
- 事件回调的最佳位置在哪里?(匿名或命名)
- 将javascript行为附加到DOM的最佳位置
- 在Angular/Django SPA中存放ng模板的最佳位置是什么?
- 什么是放置<脚本的最佳位置?标记在JSP文件中
- 在文档中放置JavaScript/Ajax的最佳位置是什么?
- 在动态AJAX加载时,哪里是存储支持JSON的最佳位置
- 在ROR中放置JavaScript的最佳位置
- 哪里是过滤AJAX查询数据的最佳位置
- 哪里是在客户端上放置数据库ID的最佳位置
- 主干——插入JavaScript以操纵DOM的最佳位置是什么?
- 调用ajax的最佳位置是调用API