我有一个简单的组件来渲染嵌套树视图。
<div *ngFor="let node of nodes.childrens">
<span (mouseover)="onHover(node.id, $event)" (mouseout)="onOut(node.id, $event)">{{node.type}}</span>
<nodestree [nodes]="node"></nodestree>
</div>
在组件上,我有两个EventEmitters
@Input() nodes;
@Output() hover : EventEmitter<string> = new EventEmitter<string>();
@Output() out : EventEmitter<string> = new EventEmitter<string>();
这两种方法
onHover(elementId, event){
this.hover.emit(elementId);
}
onOut(elementId){
this.out.emit(elementId);
}
HTML
<div *ngFor="let node of nodes.childrens">
<span (mouseover)="onHover(node.id, $event)" (mouseout)="onOut(node.id, $event)">{{node.type}}</span>
<nodestree [nodes]="node"></nodestree>
</div>
所有工作正常,除非鼠标悬停在嵌套节点上。
我记录了事件发射器,当鼠标悬停在根节点和嵌套节点上时,它有一点不同。
根节点:
observers: [Subscriber]
嵌套节点:
observers: []
因此该事件永远不会发送。 console.logs在函数内部工作,但是事件永远不会发送到父组件。 我究竟做错了什么?或者,您可以学点新知识吗?
谢谢大家!