1. 程式人生 > >Angular5中呼叫第三方js外掛

Angular5中呼叫第三方js外掛

話不多說直入主題,最常見的有三種方式來引用第三方外掛,下面以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;

   目的是不讓編譯時報錯

3.接下來在ngOnInit方法中就能正常用上面的三款外掛了

三、在具體元件中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;

   目的是不讓編譯時報錯

3.接下來在ngOnInit方法中就能正常用上面的三款外掛了

三種方式都介紹完了,下面來說說需要注意的事情,前兩種方式需要重啟服務才會有效果(我當時用的ng serve,不重啟的話不起作用);第三種方式無需重啟服務,直接就能看到效果。

真是吐血的教訓,剛開始嘗試的前兩種方式,怎麼著都不成功,最後第三種方式成功了,後來重啟了下服務,發現前兩種方式也成功了。

不知道為什麼前兩種方式需要重啟服務,自我猜測下:也許是前兩種都是修改的app資料夾外面的檔案,不會自動檢測和編譯,而第三種方式能檢測到。

不知猜的對不對,如果有大牛瞭解內部原理,望不吝賜教。