2

應該指出的是,我不擅長使用Firebug,但是我還沒有發現任何可以解釋以下問題的錯誤。如何解決在Rails中靜靜失敗的js?

我有一個feed.js.erb文件包含以下代碼:

var $foos = $('<%= escape_javascript(render(@foos)) %>'); 
$('#container').append($foos); 
$('#pagination_button a').attr('href', '<%= feed_path + '?page=' + @page %>'); 

當此AJAX調用由第二時間,這似乎默默地失效。我在Firebug控制檯中看到了相應的響應,但$foos未更改並且隨後不會附加#container

我的html頁面只包含一個加載指示器,它在第一次調用時成功替換。第二個調用是從其他javascript(Infinite Scroll)觸發的。

如果很重要,我已經注意到第一次調用是使用自動生成的時間戳參數進行的。之後,我將替換目標網址,如您在#pagination_button a上看到的那樣。

如何在瀏覽器中調試?

更新:我用ERB使$foos動態變量($ foos1 ... $ foos2),並注意到,這也是行不通的。所以即使新的@foos在控制檯的響應中可見,我的javascript的第一行也沒有被評估。

+0

如何使用螢火蟲腳本面板在其中一行上放置斷點? – Jords

+0

我無法找到這樣做的方法,因爲此腳本位於http響應中。它是在我們的Rails控制器動態創建的,在html頁面已經被渲染之後。 –

+0

你不是試圖用相同的element-id兩次追加容器,對嗎? – aroth

回答

3

事實證明,Rails沒有像JS那樣處理我的第二個請求。更重要的是,如果JS引發異常,它將被轉換爲純文本as explained hereSteve也顯示瞭如何調試Ajax代碼,有效地回答我的兩個問題。