diff options
Diffstat (limited to 'src/service/route.js')
| -rw-r--r-- | src/service/route.js | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/src/service/route.js b/src/service/route.js index 2634eb6c..9f0c7b6d 100644 --- a/src/service/route.js +++ b/src/service/route.js @@ -197,14 +197,16 @@ angularServiceInject('$route', function(location, $updateView) {    function switchRouteMatcher(on, when, dstName) { -    var regex = '^' + when.replace(/[\.\\\(\)\^\$]/g, "\$1") + '$', +    // TODO(i): this code is convoluted and inefficient, we should construct the route matching +    //   regex only once and then reuse it +    var regex = '^' + when.replace(/([\.\\\(\)\^\$])/g, "\\$1") + '$',          params = [],          dst = {};      forEach(when.split(/\W/), function(param){        if (param) {          var paramRegExp = new RegExp(":" + param + "([\\W])");          if (regex.match(paramRegExp)) { -          regex = regex.replace(paramRegExp, "([^\/]*)$1"); +          regex = regex.replace(paramRegExp, "([^\\/]*)$1");            params.push(param);          }        } | 
