2017-05-18 92 views
0

我正在重複使用幾個自定義的javascript庫,這對我的實際項目有用,我的問題是在谷歌和本網站搜索後沒有任何答案幫助過我,一些解決方案是哈克,我想知道自從angular2/4被公開發布以來,有什麼方法可以以正確的方式來做到這一點?Angular2導入自定義JavaScript庫

編輯: 我添加更多的細節,其中的一些庫是單張的,我不想改變angular2小葉因爲一些自3年前它已被更新像leaflet geotagged photos的插件。 我居然可以看到在頁面的地圖,如果我加載腳本是這樣的:

ngAfterViewInit() { 

    var s = document.createElement("script"); 
    s.type = "text/javascript"; 
    s.src = "./resources/js/app/visitantes_leaflet.js"; 
    this.elementRef.nativeElement.appendChild(s); 

    } 

,但我不能發送數據或致電從那裏方法(我嘗試使用的HTML好醇」 JS事件)。 來自@Michal的回答不顯示地圖,@Joo Beck回答的「作品」,但顯示此錯誤:Error: Map container not found.,因爲012map未在L.map('地圖')之前添加。

+0

所以有什麼問題?導入並使用它與'rxjs'完成的方式 –

+0

@Maximus我之前說過,這些解決方案都沒有真正起作用 –

回答

1

在您的角cli.json文件(位於根目錄)添加JavaScript庫到App [0] .scripts中數組

{ 
"project": { 
    }, 
    "apps": [ 
    { 
    ... 
     "scripts": [ 
     "../node_modules/custom-library/main.js", 
     ], 
    } 
    ], 
} 
2

你或許應該提什麼你都試過,什麼也沒有工作,所以我們可以幫助您找到解決方案而不浪費時間。如果您提到您使用的是打字稿或JavaScript,這也會很有用。看起來你正在使用JavaScript,但如果你使用的是打字稿,coudl解釋你爲什麼有問題。

如果您使用的是打字稿,那麼對我而言,只是一個聲明變量和一個導入,就像這樣。

declare var RecordRTC: any; 

import "../../dependencies/RecordRTC.js"; 

該聲明只是讓打字稿知道它需要的是否存在,它可以在轉錄後訪問它。

+0

我得到這個錯誤:'遇到函數時你可能需要一個合適的加載器來處理這個文件類型' –