2013-10-15 43 views
0

我在AJAX成功回調中將以下HTML插入到DOM中。 AJAX調用提供了data,其中包含以下使用的字段。對於每個player1player2,資產/圖像中都會保存一個關聯圖像"#{first_name}_#{last_name}"。我如何用ERB替換以下HTML中的data字段?具體來說,我想使用rails'image_tag,以便圖像的url包含附加到生產環境(Heroku)中圖像url的字母數字代碼(摘要)。當使用jQuery/CoffeeScript將HTML注入DOM時使用ERB

謝謝!

getFullMatchupHTML = (data) -> 
     fullMatchupHtml = 
     '<div class="row">' + 
      '<div id="matchupID" data-matchupid=' + data.matchup.id + '></div>' + 
      '<div id="mpcontainer" class="">' + 
       '<div id="mp1" class="span5 mp">' + 
        '<h3>' + data.player1.first_name + ' ' + data.player1.last_name + '</h3>' + 
        '<h4>' + data.player1OpponentTeamName + '</h4>' + 
        '<div id="mpimage1" class="mpimage">' + 
         '<img src="/assets/' + data.player1.first_name + '_' + data.player1.last_name + '.jpg" alt="' + data.player1.first_name + '_' + data.player1.last_name + '" class= "playerpic" >' + 
        '</div>' + 
       '</div>' + 
       '<div id="mp2" class="span5 mp">' + 
        '<h3>' + data.player2.first_name + ' ' + data.player2.last_name + '</h3>' + 
        '<h4>' + data.player2OpponentTeamName + '</h4>' + 
        '<div id="mpimage2" class="mpimage">' + 
         '<img src="/assets/' + data.player2.first_name + '_' + data.player2.last_name + '.jpg" alt="' + data.player2.first_name + '_' + data.player2.last_name + '" class= "playerpic" >' + 
        '</div>' + 
       '</div>' + 
      '</div>' + 
     '</div>' + 
     '</br>' + 
     '<div class="row" id="num-votes-row" class="hiddenVoteRow">' + 
      '<div class="">' + 
       '<div id="mpts1" class="span5">' + 
        '<h2>' + data.ptsplayer1 + '</h2>' + 
       '</div>' + 
       '<div id="mpts2" class="span5">' + 
        '<h2>' + data.ptsplayer2 + '</h2>' + 
       '</div>' + 
      '</div>' + 
     '</div>' 

回答

1

試着將format.js在你的控制器動作的底部與一個js.erb觀點作出迴應。在這個視圖中,你可以簡單地把你想運行的javascript在服務器響應你的ajax調用時運行。因此,例如,如果您的操作是edit,則在適當的視圖文件夾中創建一個名爲edit.js.erb的視圖。

+0

這很有道理,但我將如何處理AJAX回調?現在有沒有辦法使用我上面的代碼來完成它,即使使用format.js是更好的方法? – jackerman09

+0

另一個問題:如果控制器操作是從「home.html.erb」頁面上的鏈接/按鈕運行的,並且該操作是名爲「UpdatePoints」的自定義操作,那麼應該將我的JS放入「UpdatePoints.js」中。 coffee.erb「?我是否可以編輯在home.html.erb中加載的DOM中的項目?再次感謝! – jackerman09

+1

當提交帶有'remote:true'的導軌形式時,控制器將收到請求,然後如果使用'format.js',則控制器將查找'UpdatePoints.js.erb'文件 – jvperrin