【发布时间】:2019-01-22 13:07:40
【问题描述】:
我无法将路由参数检索为空。我正在使用 angular7。 请在下面找到代码
HeaderComponent ts 文件
import {Router, ActivatedRoute} from '@angular/router';
constructor(private httpService: HttpClient, private router: Router, private activatedRoute: ActivatedRoute) {
this.getNewsSelectedFromRouteParam();
}
getNewsSelectedFromRouteParam() {
alert();
let id = this.activatedRoute.snapshot.paramMap.get('typeId');
alert(id);
}
getNewsByCountry(newsTypeSelected: any) {
this.router.navigate(['/news',newsTypeSelected]);
this.getNewsSelectedFromRouteParam();
}
标题 html
<div class=" dropdown-toggle" data-toggle="dropdown">
XXX
</div>
<div class="dropdown-menu">
<div *ngFor="let cr of country" class="dropdown-item"
(click)="getNewsByCountry(cr.value)" >{{cr.name}}</div>
</div>
应用路由 ts 文件
const routes: Routes = [
{ path: 'news/:typeId', component: XxxComponent },
{ path: '**', component: XxxComponent }
];
【问题讨论】:
-
检索为 null 是什么意思?
-
而不是根参数值变为空,但我能够看到 url 的变化。
-
由于您正在获取快照值,因此它不会动态更改。您必须订阅才能更改 typeId 值
-
您的主 app.html 中有
吗?我曾经忘记使用它,我找不到我没有得到参数的原因。 -
@Talg123 你为我节省了几个小时!谢谢
标签: angular angular-routing angular7 routeparams