Reputation: 1380
How can I redirect or update the url? I cannot find any good documentation regarding this. Basically, what I want to do is to change the $routeParams dynamically and update the url with the new value.
My code looks like this:
if ($routeParams.time) {
var url;
$routeParams.time = encodeURIComponent(value);
url = '/' + $routeParams.time + '/' + 'marketing/networks';
$location.path(url);
} else {
$routeParams.time = encodeURIComponent(value);
url = '/' + $routeParams.time + $location.path();
$location.path(url);
}
Upvotes: 12
Views: 31344
Reputation: 32765
After reading the comments to my answer, I think maybe is not the right answer for this case. Please, before using this solution, read the comments and other answers. I'm not using Angular anymore so I don't feel qualified for answering.
I leave the original answer unmodified below:
You are changing the location properly but AngularJS it's not realizing that it changed. You can solve the problem using the method '$apply' of your scope like this:
$location.path( url );
$scope.$apply();
Or like this:
$scope.$apply( $location.path( url ) );
See $apply documentation here http://docs.angularjs.org/api/ng.$rootScope.Scope
Upvotes: 23
Reputation: 57036
you should use https://angular-ui.github.io/
ui-router
when using this you can do ...
state.go("route-name", {id:4});
much better than the built in routing service
The most voted answer is worrying!
Upvotes: 2
Reputation: 36030
You might want to try native browser object $window.location.href
instead, according to http://docs.angularjs.org/guide/dev_guide.services.$location (in Caveats
section).
Upvotes: 3