Skip to content

Commit bdb210d

Browse files
feat($jsonpCallbacks): new service to abstract how JSONP callbacks are handled
You can now override this service if you have specific requirements about the behaviour and formatting of the JSON_CALLBACK that is sent to the server for `$http.jsonp` requests.
1 parent c1a335d commit bdb210d

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/ng/jsonpCallbacks.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
/**
44
* @ngdoc service
55
* @name $jsonpCallbacks
6+
* @requires $window
67
* @description
78
* This service handles the lifecycle of callbacks to handle JSONP requests.
89
* Override this service if you wish to customise where the callbacks are stored and
@@ -14,7 +15,7 @@ var $jsonpCallbacksProvider = function() {
1415
$window.angular.callbacks = {};
1516
var callbackMap = {};
1617

17-
function createCalback(callbackId) {
18+
function createCallback(callbackId) {
1819
var callback = function(data) {
1920
callback.data = data;
2021
callback.called = true;
@@ -36,7 +37,7 @@ var $jsonpCallbacksProvider = function() {
3637
createCallback: function(url) {
3738
var callbackId = '_' + (counter++).toString(36);
3839
var callbackPath = 'angular.callbacks.' + callbackId;
39-
var callback = createCalback(callbackId);
40+
var callback = createCallback(callbackId);
4041
callbackMap[callbackPath] = $window.angular.callbacks[callbackId] = callback;
4142
return callbackPath;
4243
},
@@ -62,8 +63,7 @@ var $jsonpCallbacksProvider = function() {
6263
* in the JSONP response.
6364
*/
6465
getResponse: function(callbackPath) {
65-
var callback = callbackMap[callbackPath];
66-
return callback.data;
66+
return callbackMap[callbackPath].data;
6767
},
6868
/**
6969
* @ngdoc method

test/ng/jsonpCallbacksSpec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
describe('$jsonpCallbacks', function() {
4-
var $mockWindow;
4+
55
beforeEach(module(function($provide) {
66
// mock out the $window object
77
$provide.value('$window', { angular: {} });

0 commit comments

Comments
 (0)