在angular2中检测@contentChild中焦点事件的最佳方法是什么?

时间:2016-06-10 10:34:56

标签: angular

假设我在ng-content标签之间有一个预计的原生输入。 我知道,我可以使用@ContentChild获取对预计输入的引用。 我想知道我怎么能检测到例如父组件中投影输入元素的焦点事件?

1 个答案:

答案 0 :(得分:6)

没有办法。 CODEPEN事件不会起泡,因此需要直接在元素上进行监听。

如果您可以使用constructor(private renderer:Renderer) {} someMethod() { this.renderer.invokeElementMethod( this.focusableChild.nativeElement, 'addEventListener', ['focus', onFocus.bind(this)] ); } 获取参考,则可以使用

focus

如果您控制组件的使用方式,您可以将指令应用于您的内容,如focus中所述,通过调度父元素可以侦听的自定义事件将@Component({ template: `... <ng-content></ng-content> ... }) class MyComponent { @HostBinding('custom-focus', ['$event']) onFocus(event) { ... } } 事件转发到冒泡事件

{{1}}