У меня есть простой компонент для рендеринга вложенного дерева.
<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 работают внутри функции, но событие никогда не отправляется родительскому компоненту.Что я делаю неправильно?Или вы можете узнать мне что-то новое?
Спасибо всем!