ボタンをクリックすると、jsonp 呼び出しが行われます。
function clickHandler(e) {
e.preventDefault();
var url = "some.url.with?params";
$http.jsonp(url).success(function () {$scope.success();})
.error(function () {$scope.failure();});
}
テスト:
$httpBackend.expectJSONP(this.url + '&' + $.param(this.params)).respond({status: 200});
$('button').click();
$rootScope.$digest(); // this was suggested in few answers, doesn't work for me though
$httpBackend.flush();
しかし、No pending requests to flush failure を取得し続けます。
JSONP 呼び出しの場合に行う必要がある別のことはありますか。他のどこでも、この形式は機能します。
PS: はい、電話をかけます (多くの質問、人々は実際に電話をかけたり、イベントをトリガーしたアクションをトリガーしたりします)。少なくとも、コードでリクエストを行った行にコードがヒットしているのがわかります。