我有一个场景,我根据角度 url 的查询参数决定操作。
例如,如果 url 是localhost:4200/token=abc
我需要做一些任务,如果 url 是localhost:4200
那么我需要做其他事情。我ngOnInit()
在app component
. 问题是,第一次渲染组件时查询参数为空,并且需要一段时间才能输入参数值。
代码:
constructor(private route: ActivatedRoute,private router:Router){}
ngOnInit(): void {
this.route.queryParams.subscribe((params: any)=>{
console.log("params 1:",params);
if(Object.keys(params).length){ //If there are query parameters
console.log("If exectued",params);
//do Something
}
else{
console.log("Else exectued",params);
//do Something else
}
})
}
问题是参数最初是空的,它进入else
条件。之后又去if
了。输出类似于
params 1: {}
Else executed > {}
If executed > {token:abc}
如何检查路由是否已使用参数正确初始化然后继续?
PS:我在 Next.js 中发现了类似的东西,但是如何在 Angular 中做到这一点?