如何在 Rails 上使用 Ruby 创建动态 javascript?
How to create dynamic javascript with Ruby On Rails?
我正在 jQuery FullCalendar 和 Ruby 在 Rails 上进行试验,
我有一个名为 Player 的模型。我想在索引模板上为每个玩家呈现一个日历。
$('#player1_calendar').fullCalendar({
// put your options and callbacks here
})
在视图上呈现日历
我怎样才能动态地为每个玩家添加一个日历,这样我就可以调用渲染它:
<div id="player1_calendar"></div>
<div id="player2_calendar"></div>
<div id="player3_calendar"></div>
...
也许在 Javascript 中完全做到这一点更容易:
向所有日历元素添加 class:
<div id="player1_calendar" class="player-calendar"></div>
然后遍历所有这些并附上您的完整日历:
$('.player-calendar').each(function(idx, calendar) {
$(calendar).fullCalendar({});
});
我会采用不同的方法。
事实是,Rails 能够很好地返回 JSON 中的数据,这是 JavaScript 的本机数据格式。也就是说,您可以编写静态 JS 并向其添加动态 JSON 数据端点。
一般算法如下:
- 添加一个 JSON 端点,它提供在每种特定情况下决定选项所需的所有数据:这可能是一个返回给定页面上所有玩家数据的端点
- 在 HTML 中用一些东西突出显示集合的根标签:对于与行为相关的选项,我使用
data-
attributes;您甚至可以为属性值中的端点提供 URL:重点是,您应该能够设计一个选择器来找到这些
- 编写静态JavaScript,通过上面设计的选择器找到所有的标签,查询所需的数据,然后使用接收到的数据以正确的选项调用
fullCalendar
这是消除对动态 JavaScript 需求的通用方法。对于单一位置的解决方案,这显然有点矫枉过正,但对于频繁使用来说,这更方便,因为它允许您应用您的行为,而无需生成纯 JS 或什至将 JS 插入页面,但仅由 DOM.
我正在 jQuery FullCalendar 和 Ruby 在 Rails 上进行试验, 我有一个名为 Player 的模型。我想在索引模板上为每个玩家呈现一个日历。
$('#player1_calendar').fullCalendar({
// put your options and callbacks here
})
在视图上呈现日历
我怎样才能动态地为每个玩家添加一个日历,这样我就可以调用渲染它:
<div id="player1_calendar"></div>
<div id="player2_calendar"></div>
<div id="player3_calendar"></div>
...
也许在 Javascript 中完全做到这一点更容易:
向所有日历元素添加 class:
<div id="player1_calendar" class="player-calendar"></div>
然后遍历所有这些并附上您的完整日历:
$('.player-calendar').each(function(idx, calendar) {
$(calendar).fullCalendar({});
});
我会采用不同的方法。
事实是,Rails 能够很好地返回 JSON 中的数据,这是 JavaScript 的本机数据格式。也就是说,您可以编写静态 JS 并向其添加动态 JSON 数据端点。
一般算法如下:
- 添加一个 JSON 端点,它提供在每种特定情况下决定选项所需的所有数据:这可能是一个返回给定页面上所有玩家数据的端点
- 在 HTML 中用一些东西突出显示集合的根标签:对于与行为相关的选项,我使用
data-
attributes;您甚至可以为属性值中的端点提供 URL:重点是,您应该能够设计一个选择器来找到这些 - 编写静态JavaScript,通过上面设计的选择器找到所有的标签,查询所需的数据,然后使用接收到的数据以正确的选项调用
fullCalendar
这是消除对动态 JavaScript 需求的通用方法。对于单一位置的解决方案,这显然有点矫枉过正,但对于频繁使用来说,这更方便,因为它允许您应用您的行为,而无需生成纯 JS 或什至将 JS 插入页面,但仅由 DOM.