Я создал Directive
, который наблюдает, был ли добавлен определенный элемент в DOM
, и если да, то мне нужно выполнить действие над самим DOM
.
вот как мойdirective
выглядит как
constructor(private elementRef: ElementRef) {
const element = this.elementRef.nativeElement;
this.changes = new MutationObserver((mutations: MutationRecord[]) => {
mutations.forEach((mutation: MutationRecord) => {
this.printChild(mutation.target);
});
}
);
this.changes.observe(element, {
attributes: true,
childList: true,
subtree: true,
characterData: true
});
}
printChild(child: Node) {
child.childNodes.forEach(element => {
if (element.nodeName === 'MyElement') {
this.changeEvent.emit(true); //Based on this value I need to call a function in another component
}
});
};
Теперь, после того, как определенный элемент был отображен в DOM, как я могу вызвать метод в моем ComponentX
, который связан с DOM
, чтобы выполнить действие надDOM
.
directive
применяется к одному из элементов DOM для наблюдения за изменениями в его дочерних элементах
<div (domChange) ="onDomChange($event)"></div>