Javascript 渴望在Rails for AngularJS中加载HTML/erb模板
我正在跟随线程,以便急切地加载HAML模板。这似乎是一种合理的方法,可以确保Angular在初始加载时缓存所有需要的HTML部分,以避免不必要的往返服务器。我的问题是,如果我们不使用HAML,如何对常规erb/HTML模板执行相同的操作?在这一行:Javascript 渴望在Rails for AngularJS中加载HTML/erb模板,javascript,ruby-on-rails,ruby,angularjs,erb,Javascript,Ruby On Rails,Ruby,Angularjs,Erb,我正在跟随线程,以便急切地加载HAML模板。这似乎是一种合理的方法,可以确保Angular在初始加载时缓存所有需要的HTML部分,以避免不必要的往返服务器。我的问题是,如果我们不使用HAML,如何对常规erb/HTML模板执行相同的操作?在这一行: $templateCache.put("<%= File.basename(f).gsub(/\.haml$/, '') %>", <%= Haml::Engine.new(File.read(f)).render.to_json
$templateCache.put("<%= File.basename(f).gsub(/\.haml$/, '') %>", <%= Haml::Engine.new(File.read(f)).render.to_json %>);
<% end %>
$templateCache.put(“,”);
人们需要任何替代品来替代erb模板的
Haml::Engine.new
。有没有一个解决方案,让我可以实现我的非Haml为基础的模板以上 对于ERB模板,您可以使用:
<% Dir.glob(Rails.root.join('app','assets','templates', '*.erb')).each do |f| %>
$templateCache.put("<%= File.basename(f).gsub(/\.erb$/, '') %>", <%= ERB.new(File.read(f)).result.to_json %>);
<% end %>
$templateCache.put(“,”);
使用HAML的原始代码是:
<% Dir.glob(Rails.root.join('app','assets','templates', '*.haml')).each do |f| %>
$templateCache.put("<%= File.basename(f).gsub(/\.haml$/, '') %>", <%= Haml::Engine.new(File.read(f)).render.to_json %>);
<% end %>
要从文件名中获取模板名,请使用
File.basename(f, '.erb')
要渲染ERB模板,请使用
ERB.new(File.read(f)).result
请参阅
把所有的东西放在一起,我们就可以
<% Dir.glob(Rails.root.join('app','assets','templates', '*.erb')).each do |f| %>
$templateCache.put("<%= File.basename(f, '.erb') %>", <%= ERB.new(File.read(f)).result.to_json %>);
<% end %>
$templateCache.put(“,”);
<% Dir.glob(Rails.root.join('app','assets','templates', '*.erb')).each do |f| %>
$templateCache.put("<%= File.basename(f, '.erb') %>", <%= ERB.new(File.read(f)).result.to_json %>);
<% end %>