我正在使用 Ruby on Rails 3.2.2 和 jquery-rails 2.0.2 gem(包括 jQuery UI 插件)。为了 DRY(不要重复自己)我的代码,我计划“提取”jQuery Dialog Widget在将以几乎相同的方式在我的应用程序中呈现的部分模板中;所以,我正在考虑通过在 :locals
中传递一些“复杂”代码(可能是 JavaScript 代码)来实现和呈现该模板。声明...但我在如何正确传递该代码方面遇到了一些麻烦。
具体来说,我想通过传递 :locals
which "build"/that "populate" 一些 jQuery 对话框来呈现模板选项、事件、方法(有关更多信息,请参阅 jQuery UI Official Documentation),例如选项 title
或事件 close
(注意:“传递”/“构建”/“填充”内容是 JavaScript 代码或 JavaScript 和 Ruby 代码).
我可以/应该做什么来实现我的目标?是否有一些“通用”的方法或实践?
最佳答案
这是一个简单的例子。看看这是否有帮助,以及 YMMV。
部分可以包含 JavaScript 和 Ruby 代码作为 ERB(或 HAML,或您想要使用的任何模板)。
我使用将共享部分放在目录 ./app/views/shared
中的约定。
示例文件 ./app/views/shared/_dialog.html.erb
:
<!-- typical jQuery dialog box creator -->
<script>
$(function() {
$( "#dialog" ).dialog();
});
</script>
<!-- typical dialog with Ruby ERB for title and message -->
<div id="dialog" title="<%= title %>">
<p><%= message %></p>
</div>
从您的 View 页面调用局部:
<h1>My Page</h1>
<%= render :partial => "shared/dialog",
:locals => { :title => :"Hello", :message => "World" } %>
关于javascript - 如何正确呈现使用 jQuery 插件的部分模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083351/