如何导航到父路由(或清除路由器出口)? Angular 5
How to navigate to parent route (or clear router-outlet)? Angular 5
假设我的观点是这样的:
localhost/main
<h1>Angular Router</h1>
<nav>
<a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a>
<a routerLink="/heroes" routerLinkActive="active">Heroes</a>
</nav>
<router-outlet></router-outlet>
如果我点击英雄,那么 URI 将是例如。 localhost/main/英雄
我想在打字稿中添加功能以导航回 localhost/main.
但是我不想用这样的功能
private navigateToDefaultView() {
this.router.navigate(["/main"]);
}
因为 /main 部分可能会更改。我更喜欢那样的东西
private navigateToDefaultView() {
this.router.navigate(ToParentRoute);
// or
clearRouterOutletSomeHow
}
这可能吗?或者我被迫以字符串形式提供 URI。
编辑:
我想到了类似的东西:
ngOnInit() {
this.isMainActivated= this.router.url.indexOf("/main") > -1;
this.isHomeActivated= this.router.url.indexOf("/home") > -1;
}
private navigateToDefaultView() {
let url;
if (this.isMainActivated) {
url = this.router.url.substring(0, this.router.url.indexOf("main") + "main".length);
} else if (this.isHomeActivated) {
url = this.router.url.substring(0, this.router.url.indexOf("home") + "home".length);
}
this.router.navigate([url]);
}
但我更喜欢更优雅的解决方案。
解决方案比我想象的要容易。
<button [routerLink]="['../']">
Back
</button>
它 returns 给父级 url。
假设我的观点是这样的:
localhost/main
<h1>Angular Router</h1>
<nav>
<a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a>
<a routerLink="/heroes" routerLinkActive="active">Heroes</a>
</nav>
<router-outlet></router-outlet>
如果我点击英雄,那么 URI 将是例如。 localhost/main/英雄
我想在打字稿中添加功能以导航回 localhost/main.
但是我不想用这样的功能
private navigateToDefaultView() {
this.router.navigate(["/main"]);
}
因为 /main 部分可能会更改。我更喜欢那样的东西
private navigateToDefaultView() {
this.router.navigate(ToParentRoute);
// or
clearRouterOutletSomeHow
}
这可能吗?或者我被迫以字符串形式提供 URI。
编辑: 我想到了类似的东西:
ngOnInit() {
this.isMainActivated= this.router.url.indexOf("/main") > -1;
this.isHomeActivated= this.router.url.indexOf("/home") > -1;
}
private navigateToDefaultView() {
let url;
if (this.isMainActivated) {
url = this.router.url.substring(0, this.router.url.indexOf("main") + "main".length);
} else if (this.isHomeActivated) {
url = this.router.url.substring(0, this.router.url.indexOf("home") + "home".length);
}
this.router.navigate([url]);
}
但我更喜欢更优雅的解决方案。
解决方案比我想象的要容易。
<button [routerLink]="['../']">
Back
</button>
它 returns 给父级 url。