У меня есть один файл с десятками функций javascript. Я хочу, чтобы импортировать этот файл в компонент Angular 2 и запустить функцию init(), которая определена в файле «external.js».Вызов чистой функции javascript из компонента Angular 2
import { Component, AfterViewInit } from '@angular/core';
import "../../../../assets/external.js";
@Component({
selector: 'app-component',
templateUrl: 'app.component.html'
})
export class ComponentNameComponent implements AfterViewInit {
constructor() { }
ngAfterViewInit(): void {
// invoke init() function from external.js file
}
}
external.js загружается с помощью импорта и в ngAfterViewInit() Я хочу, чтобы вызвать Init() функцию, которая в external.js, называющих все другие методы в этом внешнем файле.
Вот часть external.js:
function init() {
callFunction1();
callFunction2();
}
Я следовал за вашим примером. Я создал 'вар webGlObject = (функция() { возврата { INIT: функция() { инициализации();} } }) (webGlObject || {}) ' и в ngAfterViewInit() пытался получить доступ с помощью 'webGlObject.init();' , но я получаю ошибку 'errors.service.ts: 29 ReferenceError: webGlObject не определен' –
У меня есть обновленный плункер с вашим webGlObject, и он работает. Единственное, что я изменил, это то, что вы вызываете init() в функции init. – hakany
если вы все еще получаете сообщение об ошибке, можете ли вы предоставить дополнительную информацию или создать, например, в plunker, jsfiddle или что-то еще? – hakany