我在使用 Angular 9 中的路由机制时遇到了困难。我有一个 Buildings 组件和一个 BuildingDetailComponent。我无法在 BuildingDetailCompoent 中获取参数。即使它出现在地址栏中的 URL 中,它也不在那里。
所以在父组件中我只有这个..
const routes: Routes = [ { path: '', component: BuildingsComponent, data: { title: 'Buildings' } } ];
然后在路由的建筑细节组件中我有这个。
const routes: Routes = [ { path: '', component: BuildingDetailComponent, data: { title: 'Buildings},
children: [
{ path: 'building-detail', component: BuildingDetailComponent, data: { title: 'Building Detail' } },
{ path: 'building-detail/:id', component: BuildingDetailComponent, data: { title: 'Building Detail' } }
]
}
];
所以基本上我在我的 BuildingComponent.html 中像这样传递值......
<td style="text-align: center;"><button [routerLink]="['./building-detail', building.ID]" class="button button-primary"><span >Edit</span></button></td>
然后在 BuildingDetailComponent 中,我使用以下命令收集值...
this.buildingID = (this.route.snapshot.paramMap.get('id') != null) ? parseInt(this.route.snapshot.paramMap.get('id')) : 0;
我已经尝试了很多路由,最后这是我现在需要的唯一部分 this.building.ID 是未定义的,所以当我查看 this.route 时,即使在地址栏中可以看到传递的值,也没有参数。
我可以通过执行以下操作来解决它,并且可能会用它做一些事情,但感觉不对。
let URL = this.router.url;
我希望作为最后的途径,有人可以就此向我提供建议。
谢谢。