【问题标题】:How to get component name from active router link in Angular如何从Angular中的活动路由器链接获取组件名称
【发布时间】:2018-12-10 13:57:56
【问题描述】:

我想在标题布局中获取由路由器链接激活的组件的名称。然后根据激活的组件名称进行检查。 如果有办法,请帮我解决这种情况。 目前我正在 ngOnInit 方法中获取路由器链接地址

this.router.url

我还想要链接到活动路由器链接的组件名称,因为在某些情况下,我的应用程序中的组件名称和 url 段不匹配

【问题讨论】:

  • 请添加更多详细信息和您尝试过的代码。
  • 更新了我的查询,
  • 如您所说,哪些路线没有被加载。你能举个例子吗。这可能是因为定义的路由顺序。

标签: angular angular-ui-router components angular-routing


【解决方案1】:
  1. 你可以使用:

    // 路由器出口> (激活)='onActivate($event)' (deactivate)='onDeactivate($event)'>

其中 $event 是组件实例。取自这里https://stackoverflow.com/a/45431729/6528560

  1. 您应该在每个路由定义中添加带有组件名称的数据,然后在 ActivatedRoute 中读取它

    公共构造函数(私有路由:ActivatedRoute){ console.log(route.snapshot.data['name']); }

https://stackoverflow.com/a/40863833/6528560

【讨论】:

    【解决方案2】:

    希望对你有帮助。

    this.route.routeConfig.component.name
    

    它将返回组件名称。

    【讨论】:

    • 这在使用生产构建时不会返回预期的组件,因为如果设置了 --optimization = true 标志,组件名称已被缩小。
    猜你喜欢
    • 2018-06-12
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    相关资源
    最近更新 更多