2015-04-04 42 views
0

我在我的html模板中有一個循環語句,用於生成具有唯一ID的多個div和按鈕。由此產生的HTML類似於...Rails ajax動態選擇渲染部分的位置

// show.html.erb 
<button id="button-town-data1"><%= link_to 'Load Details', town_path(current_user.town), id:"link-town-data1", remote:true %></button> 
<div id="town-data1"></div> 
<div>other stuff here blah blah</div> 
<button id="button-town-data2"><%= link_two, remote:true, etc %></button> 
<div id="town-data2"></div> 

當用戶點擊按鈕,我想加載一個部分到相應的div。但我無法告訴導軌哪個div加載。 。

// show.js.erb 
$('#town-data1').html("<%= j (render 'town_data') %>"); 
$('#town-data2').html("<%= j (render 'town_data') %>"); 

以上就是我現在有,但我真的想要的東西,看起來像這樣...

$(dynamically_generated_selector).html("<%= j (render 'town_data') %>"); 

我不想局部加載到每一個DIV。這會讓它看起來很奇怪。我希望能夠根據哪個按鈕被點擊來選擇加載部分動態加載的位置......我試過$(this).html("<%= j (render 'town_data') %>");,但它沒有奏效。也許我可以傳遞參數到我的控制器中,然後使用show.js.erb中的參數?

回答

1

我假設問題是要選擇哪個div來呈現數據...而不是要呈現哪些內容(您已經想出了哪些內容)。

由於您的按鈕和目標div具有相似的ID,因此您可以使用它。點擊任何按鈕時,請輸入它的ID。 'button-town-data1',刪除零件'button-',你將有'town-data1'這是目標div的id。用它來渲染相關div中的數據。這樣您就可以將每個div與點擊的按鈕相關聯。

我可以給你的代碼,但我認爲它是simle字符串操作,所以你可以試試