如何从 Angular ActivatedRoute 获取参数

fao*_* Ch 7 parameters routes angular

我正在尝试使用 observables 从我激活的路线中获取 prameter :id 。当我在控制台上打印参数时,我得到了正确的 :id 值。但 this.id 的情况并非如此。我得到了 NaN 值。你能告诉我有什么问题吗

export class RecipeEditComponent implements OnInit {
  id: number;
  editMode = false;

  constructor(private route: ActivatedRoute) { }

  ngOnInit() {
    this.route.params.subscribe(
      (params: {id: string}) => {
        this.id = +params.id;
        console.log(this.id);
      }
    );
}
}
Run Code Online (Sandbox Code Playgroud)

Dam*_*eya 8

改成this.id = +params.get('id')

您应该使用该方法,get()因为它为给定参数返回单个值id。您收到错误是因为params不是作为id值的键。

export class RecipeEditComponent implements OnInit {
  id: number;
  editMode = false;

  constructor(private route: ActivatedRoute) { }

  ngOnInit() {
  // paramMap replaces params in Angular v4+
   this.route.paramMap.subscribe(params: ParamMap => {
        this.id = +params.get('id');
        console.log(this.id);     
  });
}
Run Code Online (Sandbox Code Playgroud)

  • @Ellone + 号将 id 从字符串更改为数字。 (4认同)
  • 如果您使用的是 Angular v4+,请将“params”更改为“paramMap”。 (2认同)