为什么app组件中的服务注入导致URL参数未定义?

时间:2018-03-21 07:30:22

标签: angular typescript url-parameters

我有一个服务,我从URL中读取了几个参数。看起来很好,直到我尝试在constructor的{​​{1}}中注入服务,或者我尝试从app.component.ts调用服务方法。然后url-parameters未定义。

任何想法可能是什么原因?

app.component.ts

my-service.service.ts

... public param1; constructor(public router: Router, private http: HttpClient) { this.param1 = this.router.parseUrl(this.router.url).queryParams['todo']; console.log('param1: ' + this.param1); // returns undefined if the service is injected in app.component } ....

app.component.ts

1 个答案:

答案 0 :(得分:0)

当我们通过一些参数时,我们总是这样做:

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

  constructor(
    private router: Router,
    private route: ActivatedRoute
  ){ 
      this.route.params.subscribe(params => {
        let todo = params['todo'];
      });
  }

也许你必须将订阅转移到ngOnInit(),但通常这应该有效。