()
| 9641 | } |
| 9642 | |
| 9643 | function $HttpParamSerializerJQLikeProvider() { |
| 9644 | /** |
| 9645 | * @ngdoc service |
| 9646 | * @name $httpParamSerializerJQLike |
| 9647 | * @description |
| 9648 | * |
| 9649 | * Alternative {@link $http `$http`} params serializer that follows |
| 9650 | * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic. |
| 9651 | * The serializer will also sort the params alphabetically. |
| 9652 | * |
| 9653 | * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property: |
| 9654 | * |
| 9655 | * ```js |
| 9656 | * $http({ |
| 9657 | * url: myUrl, |
| 9658 | * method: 'GET', |
| 9659 | * params: myParams, |
| 9660 | * paramSerializer: '$httpParamSerializerJQLike' |
| 9661 | * }); |
| 9662 | * ``` |
| 9663 | * |
| 9664 | * It is also possible to set it as the default `paramSerializer` in the |
| 9665 | * {@link $httpProvider#defaults `$httpProvider`}. |
| 9666 | * |
| 9667 | * Additionally, you can inject the serializer and use it explicitly, for example to serialize |
| 9668 | * form data for submission: |
| 9669 | * |
| 9670 | * ```js |
| 9671 | * .controller(function($http, $httpParamSerializerJQLike) { |
| 9672 | * //... |
| 9673 | * |
| 9674 | * $http({ |
| 9675 | * url: myUrl, |
| 9676 | * method: 'POST', |
| 9677 | * data: $httpParamSerializerJQLike(myData), |
| 9678 | * headers: { |
| 9679 | * 'Content-Type': 'application/x-www-form-urlencoded' |
| 9680 | * } |
| 9681 | * }); |
| 9682 | * |
| 9683 | * }); |
| 9684 | * ``` |
| 9685 | * |
| 9686 | * */ |
| 9687 | this.$get = function() { |
| 9688 | return function jQueryLikeParamSerializer(params) { |
| 9689 | if (!params) return ''; |
| 9690 | var parts = []; |
| 9691 | serialize(params, '', true); |
| 9692 | return parts.join('&'); |
| 9693 | |
| 9694 | function serialize(toSerialize, prefix, topLevel) { |
| 9695 | if (toSerialize === null || isUndefined(toSerialize)) return; |
| 9696 | if (isArray(toSerialize)) { |
| 9697 | forEach(toSerialize, function(value, index) { |
| 9698 | serialize(value, prefix + '[' + (isObject(value) ? index : '') + ']'); |
| 9699 | }); |
| 9700 | } else if (isObject(toSerialize) && !isDate(toSerialize)) { |
nothing calls this directly
no test coverage detected