0

有一个服务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)
            }), */
         ...

问题:

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

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

4

1 回答 1

1

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

于 2020-01-28T15:13:37.717 回答