标题:Angular:ActivatedRoute 为 URL 中的参数返回 null

问题描述 投票:0回答:2

我正在尝试使用

ActivatedRoute
服务从我的 Angular 组件中的 URL 检索参数值,但我得到了一个
null
参数值。这是我的网址:

http://localhost:4200/question/edit/2

这是我的路线配置:

const routes: Routes = [
  {
    path: 'question/edit/:id',
    component: AddQuestionComponent
  }
];

这是我在我的

AddQuestionComponent
中使用的代码:

import { ActivatedRoute } from '@angular/router';

constructor(private activatedRoute: ActivatedRoute) { }

ngOnInit() {
  const id = Number(this.activatedRoute.snapshot.paramMap.get('id'));
  console.log(id); // Output: null
}

我希望

console.log()
语句输出
2
,但它正在输出
null
。我也试过直接访问
params
属性(
this.activatedRoute.snapshot.params.id
),但也返回
null
.

我做错了什么?任何帮助将不胜感激。谢谢!

angular url-routing angular-router url-parameters
2个回答
0
投票

尝试跟随

this.activatedRoute.params.subscribe((params) => {
const id = Number(params['id']);
  console.log(id);
})

0
投票
Solution One : 
const id = Number(this.activatedRoute.snapshot.queryParamMap.get('id'));
console.log(id); // Output: null


Solution Two :
this.activatedRoute.queryParams.subscribe((params) => {
  const id = Number(params['id']);
  console.log(id);
})

Solution Three : 
this.activatedRoute.params.subscribe((params) => {
  const id = Number(params['id']);
  console.log(id);
})
© www.soinside.com 2019 - 2024. All rights reserved.