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