diff --git a/src/ngRoute/route.js b/src/ngRoute/route.js index fe5d8ec76750..085170a829d7 100644 --- a/src/ngRoute/route.js +++ b/src/ngRoute/route.js @@ -465,9 +465,7 @@ function $RouteProvider(){ for (var i = 1, len = m.length; i < len; ++i) { var key = keys[i - 1]; - var val = 'string' == typeof m[i] - ? decodeURIComponent(m[i]) - : m[i]; + var val = m[i]; if (key && val) { params[key.name] = val; diff --git a/test/ngRoute/routeSpec.js b/test/ngRoute/routeSpec.js index de7ccb8d593d..6e8dcaad81ab 100644 --- a/test/ngRoute/routeSpec.js +++ b/test/ngRoute/routeSpec.js @@ -242,6 +242,12 @@ describe('$route', function() { $rootScope.$digest(); expect($route.current).toBeDefined(); })); + + it('matches a URL with even more special chars', inject(function($route, $location, $rootScope) { + $location.path('/$test.23/foo*(bar)/~!@#$%^&*()_+=-`'); + $rootScope.$digest(); + expect($route.current).toBeDefined(); + })); });