簡體   English   中英

如何使用Ruby On Rails創建動態JavaScript?

[英]How to create dynamic javascript with Ruby On Rails?

我正在嘗試使用jQuery FullCalendar和Ruby On Rails,我有一個名為Player的模型。 我想為索引模板上的每個玩家呈現一個日歷。

$('#player1_calendar').fullCalendar({
        // put your options and callbacks here
})

在視圖上渲染日歷

如何動態地向每個玩家添加日歷,以便我可以像這樣調用render:

<div id="player1_calendar"></div>
<div id="player2_calendar"></div>
<div id="player3_calendar"></div>
...

也許完全用Java腳本更容易做到這一點:

將類添加到所有日歷元素:

<div id="player1_calendar" class="player-calendar"></div>

然后遍歷所有它們並附加您的完整日歷:

$('.player-calendar').each(function(idx, calendar) {
    $(calendar).fullCalendar({});
});

我會采取不同的方式。

事實是,Rails能夠以JSON返回數據,JSON是JSON的本機數據格式。 也就是說,您可以編寫靜態JS並向其中添加動態JSON數據終結點。

通用算法如下:

  • 添加一個JSON端點,該端點提供在每種情況下決定選項所必需的所有數據:這可能是一個端點,返回給定頁面上所有玩家的數據
  • 在HTML中,使用以下內容突出顯示集合的根標簽:對於與行為相關的選項,我使用data-屬性;對於行為相關的選項,我使用data-屬性。 您甚至可以在屬性值中提供端點的URL:重點是,您應該能夠設計一個選擇器來找到這些
  • 編寫靜態JavaScript,使用上面設計的選擇器查找所有標簽,查詢所需數據,然后使用接收到的數據以正確的選項調用fullCalendar

這是消除動態JavaScript需求的一種通用方法。 對於單位置解決方案,這顯然是過大的,但是對於頻繁使用,這更方便,因為它允許您應用行為而無需生成純JS甚至不將JS插入頁面中,而僅由DOM觸發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM