14
私は1つのファイルに数十のjavascript関数を持っています。私がしたいのは、そのファイルをAngular 2コンポーネントにインポートし、 "external.js"ファイルで定義されているinit()関数を実行することです。角度2のコンポーネントから純粋なjavascript関数を呼び出します。
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();
}
私はあなたの例に従った。私が作成 'VAR webGlObject =(関数(){ リターン{ INIT:関数(){ のinit(); } } })(webGlObject || {}) ' とngAfterViewInitで() でアクセスしようとしましたが、エラーが発生しました 'errors.service.ts:29 ReferenceError:webGlObject is not defined' –
webGlObjectでplunkerを更新しました。私が変更したのは、init関数でinit()を呼び出すことだけです。 – hakany
まだエラーが発生した場合、より多くの情報を提供したり、たとえばplunker、jsfiddleなどで作成できますか? – hakany