これで春のエンドポイントに投稿しようとしています-
_checkForInfiniteScrolling:=>
query = @options.query
scrollElement = @searchResultContainerElem[0]
prog = (scrollElement.scrollTop + scrollElement.offsetHeight)/scrollElement.scrollHeight
if (prog > 0.8) and !@endData and scrollElement.scrollTop > 0
console.log("hitting ajax")
@getMoreResults(query)
getMoreResults:(query)=>
longitude = query.get("longitude")
latitude = query.get("latitude")
if (longitude!="" && latitude !="")
@findMoreLocationPlates(query)
else
@findMorePartialPlates(query)
findMorePartialPlates:(query)=>
console.log("in find more partial plates")
$.ajax({
type: 'POST',
data: query,
url: "someUrl"
success: @_appendNewResults
})
ただし、別のモデルに存在するこの関数を呼び出しています-
loadSearchHistory:=>
console.log("load search being called")
$.ajax({
type: 'GET',
url: "anotherUrl",
success:@_searchHistoryLoaded
});
_searchHistoryLoaded:(data)=>
console.log("wtf?")
searchHistoryView = new SearchHistory(pastSearches:data)
奇妙なことは、_searchHistoryLoaded が呼び出されてから loadSearchHistory が呼び出されていることです。_searchHistoryLoaded は別の関数から呼び出されることはないため、これは決して起こらないはずです。
参考までに、これはエラー時のスタックです -
PlateSearchQuery._searchHistoryLoaded (-search.js:78)
(anonymous function) (-search-results.js:4)
jQuery.extend.param.add (jquery-1.7.1.js:7601)
buildParams (jquery-1.7.1.js:7658)
jQuery.extend.param (jquery-1.7.1.js:7621)
jQuery.extend.ajax (jquery-1.7.1.js:7467)
handleAjax (jquery.mockjax.js:469)
PlateResultsView.findMorePartialPlates (-search-results.js:227)
(anonymous function) (-search-results.js:4)
PlateResultsView.getMoreResults (-search-results.js:221)
(anonymous function) (-search-results.js:4)
PlateResultsView._checkForInfiniteScrolling (-search-results.js:210)
(anonymous function) (-search-results.js:4)
jQuery.event.dispatch (jquery-1.7.1.js:3256)
$event.dispatch (jquery.event.drag-2.2.js:374)
jQuery.event.add.elemData.handle.eventHandle (jquery-1.7.1.js:2875)
確かに、これを解決するのはおそらく誰にとっても難しいでしょう。デバッグ方法についてのアドバイスもいただければ幸いです。
編集-
トレースを間違えました - console.log("wtf?) にいるときにそこにあるコールスタックを表示しました