问题
In my app I have a category page that has links to a various product list pages. If it turns out that when you get to a product list page there is only one product then it automatically navigates to that product detail page. What I want is to remove the product list page route in the history so that when the user is on the product detail page and hits the back button they will go to the category page and not the product list page because that will just redirect them back to the detail page.
回答1:
You can use angular routers replaceUrl
flag to do this. See api docs for more details here
this.router.navigate(['/view'], { replaceUrl: true });
回答2:
If using the $location object in order to switch views, a way of doing the same as in @alt255 's post is by using the replace() method after calling path("..."):
$location.path("/").replace();
来源:https://stackoverflow.com/questions/51427689/angular-5-remove-route-history