aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2011-12-12 13:38:50 -0800
committerIgor Minar2012-03-20 11:07:37 -0700
commit6d6f875345e01f2c6c63ef95164f6f39e923da15 (patch)
tree2f7bb73eea09941723834e24cb162f2683b59c17
parenta4fe51da3ba0dc297ecd389e230d6664f250c9a6 (diff)
downloadangular.js-6d6f875345e01f2c6c63ef95164f6f39e923da15.tar.bz2
fix($resource): support escaping of ':' in resource url
So one can how define cors/jsonp resources with port number as: resource.route('http://localhost\\:8080/Path')
-rw-r--r--src/Resource.js5
-rw-r--r--test/ResourceSpec.js7
2 files changed, 9 insertions, 3 deletions
diff --git a/src/Resource.js b/src/Resource.js
index 3b4a6db1..64c8c159 100644
--- a/src/Resource.js
+++ b/src/Resource.js
@@ -1,16 +1,15 @@
'use strict';
-
-
function Route(template, defaults) {
this.template = template = template + '#';
this.defaults = defaults || {};
var urlParams = this.urlParams = {};
forEach(template.split(/\W/), function(param){
- if (param && template.match(new RegExp(":" + param + "\\W"))) {
+ if (param && template.match(new RegExp("[^\\\\]:" + param + "\\W"))) {
urlParams[param] = true;
}
});
+ this.template = template.replace(/\\:/g, ':');
}
Route.prototype = {
diff --git a/test/ResourceSpec.js b/test/ResourceSpec.js
index 7ee7aec8..29bdad75 100644
--- a/test/ResourceSpec.js
+++ b/test/ResourceSpec.js
@@ -52,6 +52,13 @@ describe("resource", function() {
R.get({a:4, b:5, c:6});
}));
+ it('should support escaping collons in url template', inject(function($httpBackend) {
+ var R = resource.route('http://localhost\\:8080/Path/:a/\\:stillPath/:b');
+
+ $httpBackend.expect('GET', 'http://localhost:8080/Path/foo/:stillPath/bar').respond();
+ R.get({a: 'foo', b: 'bar'});
+ }));
+
it('should correctly encode url params', inject(function($httpBackend) {
var R = resource.route('/Path/:a');