我开发了一个 MEAN 堆栈应用程序,对于前端我使用 Angular。在 Angular 中,我使用导航栏和侧导航栏,它们是我的布局框架。然后路由显示在mat-sidenav-content -> ng-content这里:
框架组件 HTML
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
MY CONTENT NAVBAR
</nav>
<mat-sidenav-container class="sidenav-container">
<mat-sidenav>
MY CONTENT SIDENAV
</mat-sidenav>
<mat-sidenav-content style="background-color: #ecf0f1">
<ng-content></ng-content>
</mat-sidenav-content>
</mat-sidenav-container>
</div>
其他组件正确显示。但是,我想像这样从框架组件访问 url:
import { ActivatedRoute } from "@angular/router";
[...]
constructor(private route: ActivatedRoute) {}
[...]
this.route.snapshot.params["id"]
它不起作用,因为它是未定义的,而如果我在其他组件中执行它,它会起作用。我认为这是因为 FRAMEWORK 组件未在路由器中定义,因此该组件没有 URL。
我尝试使用共享数据服务。像这样我在其他组件中设置了 id 值,框架组件可以使用它。但它不起作用,因为框架组件是在其他组件之前加载的。