From ce1f1f97f0ebf77941b2bdaf5e8352d33786524d Mon Sep 17 00:00:00 2001 From: Caitlin Potter Date: Mon, 27 Jan 2014 14:04:45 -0500 Subject: fix(ngResource): don't append number to '$' in url param value when encoding URI Previously, if a URL parameter value included a $, it would replace the dollar sign with a literal '$1' for mysterious reasons. Using a function rather than a replacement string circumvents this behaviour and produces a more expected result. Closes #6003 Closes #6004 --- src/ngResource/resource.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index 006f3d37..055f0890 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -387,7 +387,9 @@ angular.module('ngResource', ['ng']). val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; if (angular.isDefined(val) && val !== null) { encodedVal = encodeUriSegment(val); - url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), encodedVal + "$1"); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) { + return encodedVal + p1; + }); } else { url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, leadingSlashes, tail) { -- cgit v1.2.3