Вам необходимо добавить обработчик onload
(если вам нужна поддержка IE, убедитесь, что он также поддерживает onreadystatechange
) к вашему элементу скрипта, который может вызывать функцию, которую вы хотите выполнить, когда скрипт завершит загрузку.
Чтобы удалить сценарий onNgDestroy, сохраните ссылку createElement?
на Компоненте и удалите ее в ловушке уничтожения жизненного цикла.
import { Component, OnInit, OnDestroy } from '@angular/core';
import { Renderer2, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
@Component({
selector: 'app-privacy',
templateUrl: './privacy.component.html',
styles: []
})
export class PrivacyComponent implements OnInit, OnDestroy {
private s: any;
constructor(private _renderer2: Renderer2, @Inject(DOCUMENT) private _document) {
this.s = this._renderer2.createElement('script');
this.s.type = `text/javascript`;
this.s.src = `../../assets/scripts/privacy.js`;
this.s.onload = this.doneLoading;
this._renderer2.appendChild(this._document.body, this.s);
}
doneLoading () {
// do what you need to do
}
ngOnDestroy() {
// this removes the script so it won't be added again when the component gets initialized again.
this._renderer2.removeChild(this._document.body, this.s)
}
ngOnInit() {
}
}