1

"XHR kesme noktaları" nı, "Any XHR" yi kesmek için, AJAX isteğini tetikleyen satırı, çağrı yığınını kontrol ettiğimde, tüm satırlar Açısal olarak ayarlıyorum. js kütüphanesi satırları. Bu mantıklı değil çünkü bu şekilde kodumdaki hangi satırı isteğimi tetiklediğimi bulamıyorum. Ne yapmalıyım?Chrome, yalnızca hata ayıklama sırasında çağrı yığınındaki Kütüphane satırlarını gösterir AJAX

diğer bilgiler: o var olmayan URL isteyen çünkü

o önemli ise, AJAX yanıtı, hatadır.
Ayrıca kara kutu Angular açıldığında - kesme noktası tetiklenmez. Açısal Ajax isteğini derhal yapmaz.

cevap

0

Bunun yerine, sindirim bitene kadar sıraya girer.

$http.get yöntemini arayarak veya istekte bulunmak için ne kullanıyor olursanız, isteğin neden olduğu kodu bulabilirsiniz.

debugCall($http, "get"); // put this somewhere where it's only called once 

function debugCall(object, methodName){ 
    var originalMethod = object[methodName]; 
    object[methodName] = function(){ 
     debugger; 
     originalMethod.apply(this, arguments) 
    } 
} 

Ayrıca Açısal çağrı yığınına bakabilir ve orada ipuçlarını almaya çalışabilirsiniz. Örneğin, this demo'da çağrı yığındaki ilk işlev eventHandler olarak adlandırılır.

Bu çağrı çerçevesine gidip, konsolda event.target.outerHTML'u çalıştırırsanız <button ng-click="doXhr()">Do XHR 2</button> elde edersiniz. Bu, isteğin nereye bakılacağı konusunda size iyi bir fikir verir.

+0

Angular'ın nasıl çalıştığına dair güzel bir fikir. Sorun, $ http yöntemini engellemekten dolayı, onu bulamıyorum ve bu yüzden hata ayıklayıcısını kullanarak aramaya başladım. Tabii ki koddan geçebilirdim, sadece hata ayıklayıcısını kullanarak daha hızlı yapmak istedim. – naneri

+0

@naneri Müdahale etmenizi engelleyen şeyleri anladığımdan emin değilim. Uygulamanızın herhangi bir yerinde bir kez "$ http.get" işlevinin üzerine yazmanız yeterlidir. Bir kez bittiğinde, $ http.get'inin kullanıldığı yerden bağımsız olarak duracaktır. –

İlgili konular