Ten*_*ack 18 javascript ruby-on-rails content-for
我正在使用content_for和yeild将javascript文件注入我的布局底部,但我想知道包含内联javascript的最佳做法是什么.具体来说我想知道把脚本类型声明放在哪里:
<% content_for :javascript do %>
<script type="text/javascript"> ... </script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
要么
<% content_for :javascript do %> ... <% end %>
<script type="text/javascript">
<%= yield :javascript %>
</script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我现在正在使用第一个选项,并想知道包含多个是否不好
...一个视图中的声明.有时我会偏袒这一点.
Til*_*dor 31
我更喜欢让布局的产量看起来像这样:
<html>
<!-- other stuff -->
<body>
<!-- other stuff -->
<%= yield :javascript %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后在视图中你可以写:
<% content_for :javascript do %>
<script type='text/javascript'>
function doMagic() {
//Mind-blowing awesome code here
}
</script>
<% end %>
<!-- More view Code -->
<%= render :partial => "sub_view_with_javascript" %>
Run Code Online (Sandbox Code Playgroud)
在部分_sub_view_with_javascript.html.erb中你还可以写:
<% content_for :javascript do %>
<script type='test/javascript'>
function DoMoreMaths() {
return 3+3;
}
</script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我对这种方法的推理是yield和content_for在不同的文件中.将脚本标记放入每个content_for并不是DRY,但它允许语法高亮显示识别每个文件中语言的变化并帮助我.
如果你在单个文件中有多个content_for调用到同一个符号(在我们的例子中,:javascript)我会考虑将它们全部合并到最顶层,但它非常适合与partials一起使用.
HTML非常乐意拥有您想要的尽可能多的脚本块.唯一可能的问题是在使用firebug等开发人员工具中的代码时,需要花费更多的时间为您的函数找到正确的脚本块.当我需要设置一个javascript断点进行调试时,这只会发生在我身上.
| 归档时间: |
|
| 查看次数: |
30146 次 |
| 最近记录: |