我试图在我的服务中获取路由 paramMap,但订阅返回 null。但是如果我订阅组件返回值。
为什么??
我在服务中有这段代码
this.route.paramMap.subscribe(params => console.log(params.get('param')));
我的路径是:
{path: 'home/:param', loadChildren: './components/home/home.module#HomeModule'}
编辑
不错的解决方案: Angular 2.0.2: ActivatedRoute is empty in a Service
最佳答案
为什么?
问题是服务在应用程序启动时初始化,然后在需要时注入(inject)到任何组件。组件是根据路由变化来初始化的,所以我建议你订阅组件中的路由变化。
解决方法:
不过,你可以看看this answer如果你想在服务中获取参数。
或者
另一种选择是将数据从组件传递到 ngOnInit()
希望对您有所帮助!
关于angular - 如何从服务中获取 url 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793133/