Angular5中呼叫第三方js外掛
阿新 • • 發佈:2019-01-24
話不多說直入主題,最常見的有三種方式來引用第三方外掛,下面以jquery外掛及基於JQuery的兩款外掛:nicescroll和rangeSlider為例。
一、第一種方式:在.angular-cli.json檔案中配置
步驟:
1.在專案根目錄.angular-cli.json檔案中找到script欄位,在陣列中新增要引用的所有js檔案(注意先後順序)
"scripts": ["assets/jquery-3.2.1.js","assets/jquery.nicescroll.js","assets/ion.rangeSlider.js"],
2.在需要用該外掛的元件中(.ts檔案中)做如下宣告:declare var $:any;
目的是不讓編譯時報錯
3.接下來在ngOnInit方法中就能正常用上面的三款外掛了。
二、第二種方式:在index.html頁面上引用外掛
步驟:
1.在根目錄的index.html頁面中新增如下引用:
<script type="text/javascript" src="assets/jquery-3.2.1.js"></script>
<script type="text/javascript" src="assets/jquery.nicescroll.js"></script>
2.在需要用該外掛的元件中(.ts檔案中)做如下宣告:declare var $:any;
目的是不讓編譯時報錯
三、在具體元件中import 外掛
步驟:
1.在需要用到外掛的ts檔案中新增如下引用:
import "assets/jquery-3.2.1.js";
import "assets/jquery.nicescroll.js";
import "assets/ion.rangeSlider.js";
2.在需要用該外掛的元件中(.ts檔案中)做如下宣告:declare var $:any;
目的是不讓編譯時報錯
三種方式都介紹完了,下面來說說需要注意的事情,前兩種方式需要重啟服務才會有效果(我當時用的ng serve,不重啟的話不起作用);第三種方式無需重啟服務,直接就能看到效果。
真是吐血的教訓,剛開始嘗試的前兩種方式,怎麼著都不成功,最後第三種方式成功了,後來重啟了下服務,發現前兩種方式也成功了。
不知道為什麼前兩種方式需要重啟服務,自我猜測下:也許是前兩種都是修改的app資料夾外面的檔案,不會自動檢測和編譯,而第三種方式能檢測到。
不知猜的對不對,如果有大牛瞭解內部原理,望不吝賜教。