0
我目前使用這在我的控制返回JS在Rails的響應,並讓它執行不
respond_to do |format|
format.html { render :js => alert('example') }
end
這在我的application.js
$(document).ajaxSuccess(function(event, xhr, settings) {
if (settings.url == '/example') {
eval(xhr.responseText)
} else if (settings.url.match(/[\/example\/\d]+$/)) {
eval(xhr.responseText)
loadComplete()
} else {
(etc)
}
})
要將.js.erb文件在ajax響應中返回JS並讓瀏覽器執行它。我這樣做是爲了避免必須編寫一個新的.js.erb文件來適應每個可能的響應。
有沒有更好的方法來做到這一點?我認爲減少文件數量會很好,但是必須在ajaxSuccess settings.url上使用正則表達式分離JS響應。
我不明白。您想做什麼? – beck03076 2013-03-15 22:38:50
我有一個管理部分頁面,可以添加和刪除部分。部分創建和刪除都很好,但我希望ajax響應可以在管理部分頁面上創建或刪除元素,而無需刷新。我認爲使用jQuery的.load()作爲partial會更好。 – Archonic 2013-03-16 22:56:36
請注意,考慮到$(document).ajaxSuccess在所有**成功的遠程鏈接上觸發,'eval(xhr.responseText)'打開執行不需要的動作的機會。 – Archonic 2013-05-07 22:45:31