diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index 8b5944da9f60..3152e3f9a98c 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -636,6 +636,7 @@ angular.module('ngResource', ['ng']). var data = extend({}, this); delete data.$promise; delete data.$resolved; + delete data.$cancelRequest; return data; }; diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index 2747253dbe1c..0ac2c0d49404 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -753,6 +753,26 @@ describe('basic usage', function() { expect(json).toEqual({id: 123, number: '9876', $myProp: 'still here'}); }); + it('should not include $cancelRequest when resource is toJson\'ed', function() { + $httpBackend.whenGET('/CreditCard').respond({}); + + var CreditCard = $resource('/CreditCard', {}, { + get: { + method: 'GET', + cancellable: true + } + }); + + var creditCard = CreditCard.get(); + + expect(creditCard.$cancelRequest).toBeDefined(); + + $httpBackend.flush(); + + var json = creditCard.toJSON(); + expect(json.$cancelRequest).not.toBeDefined(); + }); + describe('promise api', function() { var $rootScope;