AngularはすぐにAjaxリクエストを作成しません。代わりに、ダイジェストが終了するまで待ちます。
$http.get
メソッドを傍受したり、リクエストに使用しているコードを見つけることができます。
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)
}
}
Angularコールスタックを見て、ヒントを得ることもできます。たとえば、this demoでは、コールスタックの最初の関数はeventHandler
と呼ばれます。
このコールフレームにアクセスし、コンソールでevent.target.outerHTML
を実行すると、<button ng-click="doXhr()">Do XHR 2</button>
となります。これにより、リクエストを探す場所を知ることができます。
Angularの仕組みについての良い洞察$ httpメソッドをインターセプトすることについては、問題は見つからないということです。そのため、デバッガを使用してそれを探し始めました。もちろん、私はコードを通過することができます、ちょうどそれをデバッガを使用して速くしたい。 – naneri
@naneri私はあなたがそれを傍受することを妨げるものを理解していません。 '$ http.get'関数は、アプリ内のどこでも1回だけ上書きする必要があります。これが完了すると、 '$ http.get'がどこで使われているかにかかわらず一時停止します。 –