mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
fix($resource): allow falsy values in URL parameters
Close #1212 when a param value was 0 (or false) it was ignored and removed from url. after this fix that only happens if the value is undefined or null.
This commit is contained in:
parent
7079ff5eb6
commit
4909d1d39d
2 changed files with 16 additions and 7 deletions
|
|
@ -285,7 +285,8 @@ angular.module('ngResource', ['ng']).
|
|||
|
||||
params = params || {};
|
||||
forEach(this.urlParams, function(_, urlParam){
|
||||
if (val = (params[urlParam] || self.defaults[urlParam])) {
|
||||
val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam];
|
||||
if (isDefined(val) && val !== null) {
|
||||
encodedVal = encodeUriSegment(val);
|
||||
url = url.replace(new RegExp(":" + urlParam + "(\\W)", "g"), encodedVal + "$1");
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -51,14 +51,22 @@ describe("resource", function() {
|
|||
it('should ignore slashes of undefinend parameters', function() {
|
||||
var R = $resource('/Path/:a/:b/:c');
|
||||
|
||||
$httpBackend.when('GET').respond('{}');
|
||||
$httpBackend.expect('GET', '/Path');
|
||||
$httpBackend.expect('GET', '/Path/1');
|
||||
$httpBackend.expect('GET', '/Path/2/3');
|
||||
$httpBackend.expect('GET', '/Path/4/5');
|
||||
$httpBackend.expect('GET', '/Path/6/7/8');
|
||||
$httpBackend.when('GET', '/Path').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/0').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/false').respond('{}');
|
||||
$httpBackend.when('GET', '/Path').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/1').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/2/3').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/4/5').respond('{}');
|
||||
$httpBackend.when('GET', '/Path/6/7/8').respond('{}');
|
||||
|
||||
R.get({});
|
||||
R.get({a:0});
|
||||
R.get({a:false});
|
||||
R.get({a:null});
|
||||
R.get({a:undefined});
|
||||
R.get({a:''});
|
||||
R.get({a:1});
|
||||
R.get({a:2, b:3});
|
||||
R.get({a:4, c:5});
|
||||
|
|
|
|||
Loading…
Reference in a new issue