diff options
Diffstat (limited to 'src/ngResource/resource.js')
| -rw-r--r-- | src/ngResource/resource.js | 15 | 
1 files changed, 14 insertions, 1 deletions
diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index 3eb4e79e..a2e915e8 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -34,6 +34,13 @@   *   `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')`.   * + *   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') + *   or even `$resource('http://example.com/resource/:resource_id.:format')`  + *   If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + *   collapsed down to a single `.`.  If you need this sequence to appear and not collapse then you + *   can escape it with `/\.`. + *   * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in   *   `actions` methods. If any of the parameter value is a function, it will be executed every time   *   when a param value needs to be obtained for a request (unless the param was overridden). @@ -356,7 +363,13 @@ angular.module('ngResource', ['ng']).          });          // strip trailing slashes and set the url -        config.url = url.replace(/\/+$/, ''); +        url = url.replace(/\/+$/, ''); +        // then replace collapse `/.` if found in the last URL path segment before the query +        // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` +        url = url.replace(/\/\.(?=\w+($|\?))/, '.'); +        // replace escaped `/\.` with `/.` +        config.url = url.replace(/\/\\\./, '/.'); +                    // set params - delegate param encoding to $http          forEach(params, function(value, key){  | 
