2016-11-05 6 views
0

로드 할 때 실행되는 위젯을 임베드했습니다. 일반 HTML 페이지에서, 나는 스크립트 둘 것 :Angular2 구성 요소에서 JavaScript 파일을 사용하는 방법은 무엇입니까?

<script src="rectangleDrawing.js"></script> 

을 그리고 나는 자리로 div을 둘 것 :

<div name="rectangle></div> 

문제는 난 그냥 script를 넣을 수없는 지금 제거되기 때문에 템플릿에 추가하십시오. 또한 rectangleDrawing.js은 자체 모듈로 내보내기하지 않습니다.

어떻게하면됩니까?

답변

0

아마 그 스크립트는 구성 요소 내에서 사용할 수있는 몇 가지 글로벌 변수를 노출하는 구성 요소 템플릿 내부의 <div.. 마크 업을 넣어 index.html 페이지 내부의 <script>을 넣어, 그것은 무엇을 따라 내부 어떻게 작동하는지 ...

+0

답장을 보내 주셔서 감사합니다. 나는 좀 더 연구를하고 있었어. 나는 webpack을 사용하고 있습니다. 스크립트 로더를 사용하고 구성 요소에만 스크립트를로드 할 수 있습니까? 이 구성 요소를 전역 적으로 만 액세스 할 수 없도록 피하십시오. – tschaka1904

0

아마도 가장 우아한 옵션은 아니지만 작동합니다. 이걸 넣어 주시면됩니다. 구성 요소 :

ngOnInit() { 
    this.loadScript(); 
} 

private loadScript(): void { 
    const node = document.createElement('script'); 
    node.src = 'yourScript.js'; 
    node.type = 'text/javascript'; 
    node.async = true; 
    node.charset = 'utf-8'; 
    document.getElementsByTagName('head')[0].appendChild(node); 
} 
관련 문제