Angular 如何import 一般的JavaScript Library?
在 Angular 2+ 的時代,我們都知道在TypeScript當中,如果要使用其他別人的套件
則必須要在最上方當中進行 import
例如:
import { Module Name } from 'Module Path'
但是這樣的模組化概念是在幾年前才興盛的,也就是說,如果想要使用更早以前的 JavaScript Library該如何與 Angular 2+ 搭配呢?
其實使用方法相當簡單。
使用方法其實與 jQuery套件使用方法一樣。
當我們將我們想要的Library在 index.html 利用 Script標籤進行載入的時候,我們會發現到,明明已經載入了可是為什麼編譯過後卻還是說找不到該Function呢?
這道理其實跟jQuery一樣,就好比Angular 認不得 $
是一樣的。
這時候我們需要在src/typings.d.ts
當中 宣告一個全域的變數 declare var $: any;
讓我們的 Angular 認得懂 $
這個東西
相同的,現在我們的TS,當然也認不得我們Library當中的 Function
所以,我們依然要在那邊加入我們要的 Function Name
declare var 你的function Name;
(PS: 這裡只需要打上 FunctionName就好,不需要加上小括號)
如此一來,我們的Angular就可以認得這個套件當中的Function了。
最後,假設如果需要在你的 Template當中,想要直接在event上 Binding該套件的函數的話,那你需要在TS當中,自行建立空的函數
並在函數內,呼叫套件的函數才可以執行。
原因是因為,Angular的 Template 他只會去找TS當中的函數進行Mapping。
因此如果該函數不自行建立的話,他就會找不到,進而發生錯誤。
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教:)
有任何家教、案子 或技術相關問題 請都歡迎聯繫我