mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
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
This commit is contained in:
parent
22a9b1ac07
commit
b94ca12fa0
2 changed files with 9 additions and 3 deletions
|
|
@ -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;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -106,6 +106,13 @@ describe("resource", function() {
|
|||
R.get({a: 'foo', b: 'bar'});
|
||||
});
|
||||
|
||||
it('should support an unescaped url', function() {
|
||||
var R = $resource('http://localhost:8080/Path/:a');
|
||||
|
||||
$httpBackend.expect('GET', 'http://localhost:8080/Path/foo').respond();
|
||||
R.get({a: 'foo'});
|
||||
});
|
||||
|
||||
|
||||
it('should correctly encode url params', function() {
|
||||
var R = $resource('/Path/:a');
|
||||
|
|
|
|||
Loading…
Reference in a new issue