Angular 2:以两种不同的方式使用组件:作为路径的目标和选择器<selector-my-component>

时间:2016-06-21 12:49:44

标签: angular angular2-routing angular2-template

这是关于Angular 2的一般性问题(这里没有源代码)

在Angular2中,可以将组件指定为路由器特定路由的目标。路线

/something/:myId

可能会激活“SomethingComponent”。

同时,可以通过引用模板中的选择器将组件拉入其他组件,如下所示:

<something-component [myId]="'123'"></something-component>

两种方式都可以使用一个组件吗?我可以在组件中区分它是如何被激活的吗?

1 个答案:

答案 0 :(得分:3)

您可以注入Router之类的

constructor(@Optional() private router:Router) {}

据我记得,如果它不是路由组件,则不会注入路由器。

您还可以添加@Input() someName并像<some-dual [someName]="someValue">一样使用它。路由器添加组件时,不会设置输入。

你也可以使用一个包装元素除了包装组件之外什么都不做,并转发绑定,以便它们在<some-dual>中设置,就像路由器添加时一样(例如通过共享服务而不是绑定)和包装器可以设置一个额外的标志,指示组件是从模板而不是从路由器实例化的。