如何正确呈现使用 jQuery 插件的部分模板

How to properly render a partial template that is using a jQuery plugin?

本文关键字:插件 jQuery 何正确      更新时间:2023-09-26

我正在使用Ruby on Rails 3.2.2和jquery-rails 2.0.2 gem(包括jQuery UI插件(。为了 DRY(不要重复自己(我的代码,我计划在部分模板中"提取"jQuery 对话框小部件,该模板将以几乎相同的方式在我的应用程序中呈现;所以,我正在考虑通过在整个 :locals 语句中传递一些"复杂"代码(可能是 JavaScript 代码(来实现和呈现该模板......但是我在如何正确传递该代码方面遇到了一些麻烦。

具体来说,我想通过传递:locals来呈现模板,其中"构建">/"填充">一些jQuery对话框选项,事件,方法(有关更多信息,请参阅jQuery UI官方文档(,例如选项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>

要从视图页面调用部分,请执行以下操作:

<h1>My Page</h1>
<%= render :partial => "shared/dialog",
    :locals => { :title => :"Hello", :message => "World" } %>