我正在尝试做的事情:
- 使用单个指令的多个不同组件
- 调用指令时,我需要能够获取调用指令的父/主机组件。
Plnkr -> http://plnkr.co/edit/Do4qYfDLtarRQQEBphW3?p=preview
在查看 angular.io 文档时,我发现“Injector”可用于在构造函数中获取父组件
constructor(private el: ElementRef, private hostComponent:Injector){
el.nativeElement.draggable = 'true';
}
这样做,我得到了 Injector Object。据我所知,我应该使用
this.hostComponent.get(INJECTORTOKEN)
我难以理解的问题是,Angular 中提供的示例假设您知道要在令牌中提供的组件类型。IE:
this.hostComponent.get(Image);
this.hostComponent.get(Box);
在 pnkr 示例中,我的模板中有两个组件
<div>
<h2>Hello {{name}}</h2>
<my-image></my-image> <!-- Uses the "My Directive" -->
<my-box></my-box> <!-- Uses the "My Directive" -->
</div>
我的问题是,在“mydirective.ts”中。当我不知道父级是“my-image”还是“my-box”组件时,如何利用“injector.get()”。
在提供的示例中,该指令被触发“ondrag()”。查看控制台,以获取日志消息。
非常感谢任何帮助。
非常感谢你。