【问题标题】:Actived Route is undefined in service's constructor服务构造函数中未定义激活的路由
【发布时间】:2020-01-28 15:00:52
【问题描述】:

有一个服务trackUrlService被导入到CoreModule

export class TrackUrlService implements OnDestroy {

    ...

    constructor(private router: Router, private route: ActivatedRoute) {
        ...

        this.subs.add(
            this.route.params.subscribe((params: Params) => {
                console.log(params.workflowId); // output: undefined
                ...
            })
        );
    }
...

有一个组件DummyComponent

ngOnInit() {
        this.subs.add(
            this.trackUrl.currWorkflowId.subscribe(currWorkflowId => {
                console.log(currWorkflowId); // output: undefined
            }),
            ...
            /* this.route.params.subscribe(params => {
                console.log(params.workflowId) // output: 391 (correct)
            }), */
         ...

问题:

为什么从服务的构造函数输出undefined调用this.route.params

但是从组件的ngOnInit() 调用this.route.params 可以工作并输出正确的值。

【问题讨论】:

    标签: angular angular-routing angular-router angular-activatedroute


    【解决方案1】:

    来自ActivatedRoute docs:“提供对与在出口中加载的组件关联的路由的信息的访问”,即ActivatedRoute params 仅在路由组件内部可见。

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多