angular - 从应用组件侧栏路由到带参数的组件
问题描述
我有一个带有侧边栏的 app.component。加载 app.component 时,我从后端的数据动态构建侧边菜单。单击侧边菜单中动态生成的链接之一时,我想加载一个组件并基于该参数构建内容。我的第一个想法是使用 routerLink:
应用程序组件:
<div>
<div *ngFor="let menuItem of menuItems" [routerLink]="['/assets',menuItem]">{{menuItem}}</div>
</div>
然后在组件的构造函数中订阅这些参数。但是我意识到单击每个链接时不会调用构造函数(正确地是因为 Angular 知道组件已经加载)。
做这样的事情的正确方法是什么?我是 Angular 的新手,所以请随意添加片段或示例链接。
解决方案
您的路线必须在 app.module.ts 文件中注册(以便您可以访问 YourComponent 中的 menuItem 值):
Router.forRoot( [ { path: 'assets/:menuItem', component: YourComponent } ] )
订阅事件:
constructor( private route: ActivatedRoute, private router: Router) {} ngOnInit() { this.sub = this.route .queryParams .subscribe(params => { params['menuItem']; }); }
推荐阅读
- wpf - 应用程序在 Visual Studio 中编译良好,但从 Inno Setup 5 中创建的安装程序启动时崩溃
- excel - 当我在 EXCEL VBA 中更改每种不同状态的工作表时,我需要帮助来更改复选框状态
- swift - 如何用具有多个字符的字符串拆分字符
- asynchronous - Google 长时间运行语音 API 的 Objective-C 异步调用未返回操作状态为真?
- shell - 在单个命令中使用 bc 进行浮点除法
- javascript - Express Router 中间件错误(`app.use() requires a middleware function`)
- python - 如何获取装饰器覆盖的函数的参数列表?
- java - Spring Boot WebSocket - 将正文添加到 CONNECT 响应
- tensorflow - 在 gcp ml-engine 实例上使用 tf.contrib.ffmpeg
- python - Python(Spyder):启动内核时发生错误