我试图在启动/初始路由上获取路由参数。但它不起作用。
app.component.ts
import { ActivatedRoute } from '@angular/router';
...
constructor(
private activatedroute: ActivatedRoute
) {}
ngOnInit() {
console.log(this.activatedroute.snapshot.paramMap.get('token'));
this.activatedroute.paramMap.subscribe( paramMap => {
console.log(paramMap.get('token'));
});
}
app.module.ts(不仅包括此内容)
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{ path: ':token', component: HelloComponent },
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
然后我提供我的应用程序并转到:
但是我的app.component.ts只是console.log的null null
。为什么这不起作用?我觉得我一切都正确。这是可以使用的Angular Blitz:https://stackblitz.com/edit/angular-wnrrkd
您已经在作为根组件的app.component.ts
中编写了代码,但是:token
是为子组件定义的,所以我将代码移到了子组件中,还有一点要注意的是,在app.component.html
中],您需要有一个路由器出口,该路由器出口将显示子组件,然后令牌才可见,请参阅以下示例。
[Stackblitz example] >>