From 6f71e809141bf89501e55c378921d6e7ec9512bc Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 8 Mar 2013 11:43:37 -0800 Subject: [PATCH] fix($route): make nextRoute.$route private the `nextRoute` object available in `$routeChangeStart` handler accidentaly leaked property which pointed to the route definition currently being matched. this was done just for the internal needs of the `$route` implementation and was never documented as public api. Some confusion arouse around why the $route property was not always available on the `nextRoute` object (see #1907). The right thing for us to do is to prefix the property with $$ for now and refactor the code to remove the property completely in the future. Application developers should use the `nextRoute` object itself rather than its `$route` property. The main diff is that nextRoute inherits from the object referenced by $route. BREAKING CHANGE: in $routeChangeStart event, nextRoute.$route property is gone. Use the nextRoute object instead of nextRoute.$route. Closes #1907 --- src/ng/route.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ng/route.js b/src/ng/route.js index 433149d77be7..4b5a7c925747 100644 --- a/src/ng/route.js +++ b/src/ng/route.js @@ -397,7 +397,7 @@ function $RouteProvider(){ var next = parseRoute(), last = $route.current; - if (next && last && next.$route === last.$route + if (next && last && next.$$route === last.$$route && equals(next.pathParams, last.pathParams) && !next.reloadOnSearch && !forceReload) { last.params = next.params; copy(last.params, $routeParams); @@ -477,7 +477,7 @@ function $RouteProvider(){ match = inherit(route, { params: extend({}, $location.search(), params), pathParams: params}); - match.$route = route; + match.$$route = route; } }); // No route matched; fallback to "otherwise" route