有没有办法只根据对DOM元素的引用来查找指令实例?
在Angular1.x中,您可以通过使用JQLite's "Controller" function来实现这样的行为,实际返回控制器(甚至基于可选的类型参数)。
更具体地说,我希望能够使用document.elementFromPoint()按位置识别元素并检索属于哪个Directive 实例 ...
亲切的问候
答案 0 :(得分:0)
您可以使用@ViewChild()
<my-comp #someRef someDirective></my-comp>
...
export class MyComponent {
@ViewChild('someRef', {read: SomeDirective}) someRef:SomeDirective;
ngAfterViewInit() {
console.log(this.someRef);
}
}
默认情况下,@ViewChild()
为纯HTML标记或组件的组件实例返回ElementRef
。使用{read: SomeType}
,您可以指定要从@ViewChild()
返回的内容。
您也可以使用exportAs
之类的
@Directive({
selector: 'my-dir',
...
exportAs: 'myDirective'
})
class MyDirective {
}
然后像
一样使用它<my-comp my-dir #someRef="myDirective">
然后使用
在组件中获取它@ViewChild('someRef') someRef:MyDirective;