编辑解决方案:角 - 儿童路由不工作
我最后不得不使用这样的事情(从下面的代码略有不同)
onSelect(menuItem: string): void {
this.selectedMenuItem = menuItem;
if (menuItem == 'Upload') {
this.router.navigateByUrl('/adminhome/(adminhomeviewport:adminupload)');
}
else if (menuItem == "Download") {
this.router.navigateByUrl('/adminhome/(adminhomeviewport:admindownload)');
}
}
导航我不知道为什么必须这样做,或者为什么如果有另一种方式来做到这一点,但这给了我预期的行为。
我正在使用Angular,我试图在我的某个视图中使用命名的router-outlet。不幸的是,似乎没有任何工作。我的目标是让'http://localhost:4200/adminhome'页面上的名为'admin-viewport'的路由器插座显示'AdminUploadComponent'及其相关视图。
截至目前,父HTML,http://localhost:4200/adminhome,我可以成功地浏览到这个样子的:
<div class="home-root">
<ul class="home-menu" ng-controller="AdminHomeComponent">
<li *ngFor="let menuString of menuStrings"
[class.selected]="menuString === selectedMenuItem"
(click)="onSelect(menuString)">
<span class="badge">*</span>{{menuString}}
</li>
</ul>
<router-outlet name="admin-viewport"></router-outlet>
</div>
而且路线在我app.module.ts看起来是这样的:
RouterModule.forRoot([
{
path: 'adminlogin',
component: AdminLoginComponent
},
{
path: 'search',
component: SearchQueryComponent
},
{
path: 'adminhome',
component: AdminHomeComponent,
children : [
{
path: 'adminupload',
component: AdminUploadComponent,
outlet: 'admin-viewport'
},
]
}
], {enableTracing:真正} )
点击一个按钮,我尝试使用该浏览我的出口代码:
constructor(private router: Router,public route: ActivatedRoute) {
}
onSelect(menuItem: string): void {
this.selectedMenuItem = menuItem;
if(menuItem == 'Upload')
{
this.router.navigate(['/adminhome/adminupload', {outlet : 'admin-viewport'}]);
}
}
这当然引发以下错误:
error_handler.ts:1 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'adminhome/adminupload;outlet=admin-viewport'
Error: Cannot match any routes. URL Segment: 'adminhome/adminupload;outlet=admin-viewport'
如何导航我的孩子路由器出口任何帮助将不胜感激。
编辑:当我实施@ Seejatheran的建议后列出我的路线,它仍然无法正常工作,当我列出我的路径时,我得到这个。