【问题标题】:Angular 2 component access context - selector vs routeAngular 2 组件访问上下文 - 选择器与路由
【发布时间】:2017-08-09 17:48:24
【问题描述】:

我通过路由和选择器访问相同的组件。因此,'/projects' 路由到项目列表组件,并且

<projects></projects>

也使用组件。我想知道使用哪种方法访问组件。 底线 - 路由访问是一个完整的页面,组件访问是在一个小部件中。如果通过小部件访问,我想更改一些工作方式。

【问题讨论】:

标签: angular components selector


【解决方案1】:

您可以查看路由的 URL

在组件的构造函数中注入private activatedRoute: ActivatedRoute,就可以得到如下的url

this.activatedRoute.url.subscribe(urlPath=>{});

检查urlPath 如果projects 则通过路由,否则通过选择器

【讨论】:

  • 谢谢。我想我可能需要这样做。我实际上是在抽象这个结构,我不想强​​制路由匹配实体。我正在寻找一个标志来告诉组件是如何被调用的,而不是检查路径。有什么想法吗?
【解决方案2】:

尝试一些 hacky 的方式来做到这一点.. 将输入变量 @Input() isRoute: boolean = true; 添加到您的组件并将其默认值设置为 true。 使用选择器时,像这样使用它: &lt;projects [isRoute]="false"&gt;&lt;/projects&gt;。 现在当这个组件在路由中打开时,它会将isRoute 设置为true,否则当这个组件通过选择器打开时,isRoute 将设置为false。 :)

【讨论】:

    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2017-12-03
    • 2022-11-02
    相关资源
    最近更新 更多