From b94ca12fa0b027d8592f5717e038b7b116c59384 Mon Sep 17 00:00:00 2001 From: Leandro Ostera Date: Tue, 14 May 2013 02:41:01 -0300 Subject: feat($resource): support an unescaped URL port The colon character is used to identify parameters in $resource. This meant that we had to escape the colon used in a port. It turns out that this is not necessary if we assume that parameter names cannot consist of only digits. If the parameter consists only of numbers, then it's a port. Closes #2778 --- src/ngResource/resource.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/ngResource') diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index 827886a3..2df593c1 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -31,8 +31,7 @@ * * @param {string} url A parametrized URL template with parameters prefixed by `:` as in * `/user/:username`. If you are using a URL with a port number (e.g. - * `http://example.com:8080/api`), you'll need to escape the colon character before the port - * number, like this: `$resource('http://example.com\\:8080/api')`. + * `http://example.com:8080/api`), it will be respected. * * If you are using a url with a suffix, just add the suffix, like this: * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json') @@ -345,7 +344,7 @@ angular.module('ngResource', ['ng']). var urlParams = self.urlParams = {}; forEach(url.split(/\W/), function(param){ - if (param && (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + if (!(new RegExp("^\\d+$").test(param)) && param && (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { urlParams[param] = true; } }); -- cgit v1.2.3