如何渲染一些 js 并同时保持不引人注目?

发布于 2024-12-27 10:54:28 字数 512 浏览 0 评论 0原文

我的 Project#show 视图中有这样的内容:

...
<p>
  <b>Start date:</b>
  <%= @project.start_date %>
</p>

<p>
  <b>End date:</b>
  <%= @project.end_date %>
</p>

<div id="calendar_view">
</div>

我的projects.js.coffee 中有以下内容:

$ ->
    $("#calendar_view").datepicker({
        inline: true
    })

问题是,我想用一些相关信息实例化日期选择器(例如项目的跨度以月为单位) ,将其限制为项目的开始和结束)。有没有办法在咖啡脚本中混合一些 ruby​​ 或实际项目的数据?

I have something like this in my Project#show view:

...
<p>
  <b>Start date:</b>
  <%= @project.start_date %>
</p>

<p>
  <b>End date:</b>
  <%= @project.end_date %>
</p>

<div id="calendar_view">
</div>

And I have the following in my projects.js.coffee:

$ ->
    $("#calendar_view").datepicker({
        inline: true
    })

The thing is, I would like to instantiate the datepicker with some relevant information ( such as the span of the project in months, restrict it to the beginning and end of the project ). Is there a way to mix some ruby, or the actual project's data inside the coffeescript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

命比纸薄 2025-01-03 10:54:28

对于我的项目,我通常会在文档末尾添加一个额外的 yield 块,就在结束正文标记之前。

<body>
...
<%= yield :additional_javascript %>
</body>

这样,在视图中,我可以通过 content_for :additional_javascript 块将更少的干扰性 JavaScript 添加到文档末尾:

<p>
  <b>Start date:</b>
  <%= @project.start_date %>
</p>

<p>
  <b>End date:</b>
  <%= @project.end_date %>
</p>

<div id="calendar_view">
</div>

<% content_for :additional_javascript do %>
  $(function () {
    $("#calendar_view").datepicker({
      some_property: <%= @project.some_property %>,
      inline: true
    })
  });
<% end %>

For my projects, I typically add an additional yield block to the end of our documents, right before the closing body tag.

<body>
...
<%= yield :additional_javascript %>
</body>

This way, in views, I can append less obtrusive JavaScript to the end of the document via a content_for :additional_javascript block:

<p>
  <b>Start date:</b>
  <%= @project.start_date %>
</p>

<p>
  <b>End date:</b>
  <%= @project.end_date %>
</p>

<div id="calendar_view">
</div>

<% content_for :additional_javascript do %>
  $(function () {
    $("#calendar_view").datepicker({
      some_property: <%= @project.some_property %>,
      inline: true
    })
  });
<% end %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文