Javascript 获得角度7中参数值的不同结果

Javascript 获得角度7中参数值的不同结果,javascript,angular,typescript,angular7,angular-router,Javascript,Angular,Typescript,Angular7,Angular Router,在此之前,我一直在尝试新的Angular版本,我在下面的2个版本中工作过。所以,这对我来说有点新鲜。我在一个小项目中工作,在这个项目中,我正在处理路由,从params获取一个值,并将其传递给一个函数,以从API获取结果。我得到了一个奇怪的结果 我这里有两个例子: 第一个例子 constructor(private router: ActivatedRoute, private movieService: MovieService) { } this.router.params.subscribe

在此之前,我一直在尝试新的Angular版本,我在下面的2个版本中工作过。所以,这对我来说有点新鲜。我在一个小项目中工作,在这个项目中,我正在处理路由,从params获取一个值,并将其传递给一个函数,以从API获取结果。我得到了一个奇怪的结果

我这里有两个例子:

第一个例子

constructor(private router: ActivatedRoute, private movieService: MovieService) { }
this.router.params.subscribe((params) => {
  const id = params['id']; //this works fine
});
第二个例子

constructor(private router: ActivatedRoute, private movieService: MovieService) { }
this.router.params.subscribe((params) => {
  const id = params.id;//this doesn't gives me undefined
});

如果我没有错,那么访问对象键的两种方法不是都正确吗?我以前从未注意到这种行为。我遗漏了什么吗?

首先,一定要提到路由器变量。我认为它是激活的路线。 无论如何,我尝试了两种提取参数的方法,两种方法都有效。 或者,您可以使用来提取参数

下面是使用激活的路由快照的代码

    const id = this.activatedRoute.snapshot.paramMap.get('id');

你可以找到更多关于激活路线的信息

我已经做了编辑,现在让每个人都知道它是激活路线。那么,你说两者都为你工作?没有未定义的值?奇怪!只是为了确定我们谈论的是params.id,对吗?同时,我将用一个简单的静态路径再试一次。这是发生在我身上最奇怪的事情。现在它工作得很好。我只是不明白该说什么。