angular - 如何从服务中获取 url 的参数

标签 angular angular7

我试图在我的服务中获取路由 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/

相关文章:

javascript - 如何在 Angularjs2 中使用 jquery 设置输入值并更新模型值?

javascript - 如何强制组件重新加载,使用 Angular 7 进行状态更改

javascript - @Input 和 @Output 在 Angular-Cli 中始终未定义

angular - 如何在 Angular 中@import CSS 文件?

angular - 如何从 Angular 5 中的 URL 获取查询参数?

Angular - 7 - 如何从具有多个字段的响应创建对象?

angular - CdkDragDrop 和 ngTemplateOutlet

visual-studio-code - 如何在vs2019或vscode中调试Angular SPA

angular - Angular 2 如何在没有任何显式代码的情况下知道父实例?

json - 无法让 Json 在 ag Grid 中显示只是说正在加载