Hi, I'm trying to migrate my Angular 1.0.8 application to 1.2.x and got
stuck with this issue.
I have following routing:
$routeProvider.when('/title/:simpleName/:simpleVersion', {templateUrl:
'partials/public/view/spec.html', controller: SpecificationCtrl});
$routeProvider.when('/title/:simpleName', {redirectTo:
'/title/:simpleName/latest'});
And in one of my directives, I'm creating anchors like this:
link: function(scope, elem, attr) {
elem.html('<a href="#/title/' +
encodeURIComponent(encodeURIComponent(simpleName)) + '/">...</a>')
}
where simpleName can be some string like x/y++_test.
In Angular 1.0.8, if user clicks on such link, browser contains following
URL:
.../title/x%252Fy%252B%252B_test
and everything works fine. But with Angular 1.2, browser for a second
contains again the escaped form and then URL in browser changes to
.../title/x/y++_test
which is problem as it may not match my routing rules and routing
parameters. When this change happens, according to Chrome Dev Tools, the
page as such is not reloaded and controllers are created just once when the
totally decoded URL is displayed. Is there some new change that causes? How
could I make it working the same way as in 1.0.8 ? I've searched Angular's
changelog but haven't found any mention of url decoding. More interesting,
I encoded the string twice and yet it is fully decoded
Here are 2 plunkers that demonstrate the difference. Simply click on "here"
link and see the printed URL:
- Sample with Angular
1.0.8<http://plnkr.co/edit/VQUFclZHkJIUgMnKMbLx?p=preview>
- Sample with Angular
1.2.13<http://plnkr.co/edit/Dz4K9ElK6cW22ABV0M6E?p=info>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/groups/opt_out.