Выполните действие после определенного изменения DOM с помощью MutationObserver - PullRequest
0 голосов
/ 21 ноября 2018

Я создал 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...