这是关于Angular 2的一般性问题(这里没有源代码)
在Angular2中,可以将组件指定为路由器特定路由的目标。路线
/something/:myId
可能会激活“SomethingComponent”。
同时,可以通过引用模板中的选择器将组件拉入其他组件,如下所示:
<something-component [myId]="'123'"></something-component>
两种方式都可以使用一个组件吗?我可以在组件中区分它是如何被激活的吗?
答案 0 :(得分:3)
您可以注入Router
之类的
constructor(@Optional() private router:Router) {}
据我记得,如果它不是路由组件,则不会注入路由器。
您还可以添加@Input() someName
并像<some-dual [someName]="someValue">
一样使用它。路由器添加组件时,不会设置输入。
你也可以使用一个包装元素除了包装组件之外什么都不做,并转发绑定,以便它们在<some-dual>
中设置,就像路由器添加时一样(例如通过共享服务而不是绑定)和包装器可以设置一个额外的标志,指示组件是从模板而不是从路由器实例化的。