1. 程式人生 > >ionic2 匯入第三方js庫檔案

ionic2 匯入第三方js庫檔案

網上有很多歪果仁寫的匯入第三方js,但是都行不通。

還是要用官方推薦的typings。步驟如下:

1.全域性安裝Typings

npm install -g typings

2.搜尋你想要的外掛,如chartjs
typings search chart.js

搜尋結果如下:

Viewing 1 of 1

NAME    SOURCE HOMEPAGE                           DESCRIPTION VERSIONS UPDATED
chartjs dt     https://github.com/nnnick/Chart.js             1        2016-07-11T09:45:30.000Z

3.安裝js庫

搜尋到的名稱,選擇一個在專案根目錄底下安裝

npm install chart.js --save
typings install chart.js --save

4,使用js庫

(1)在你需要使用的page包內,在***.html檔案中使用標籤

<ion-content padding class="about">  
    <canvas id="myChart" width="400" height="400"></canvas> 
</ion-content>

(2)在***.ts檔案中匯入,並建立資料
import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import * as ChartJs from 'chart.js'; // 匯入chart.js
@Component({
    templateUrl: 'build/pages/about/about.html'
})
export class DataChartPage{
    constructor(private navController:NavController) {

    }

    ionViewDidLoad() {
        var canvas = <HTMLCanvasElement> document.getElementById("myChart");
        var ctx = canvas.getContext("2d");  // 這裡是關鍵, 不能寫在constructor()中
        ChartJs.Line(ctx,{
            data: {
                labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
                datasets: [{
                    label: '# of Votes',
                    data: [12, 19, 3, 5, 2, 3],
                    backgroundColor: [
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)'
                    ],
                    borderColor: [
                        'rgba(255,99,132,1)',
                        'rgba(54, 162, 235, 1)',
                        'rgba(255, 206, 86, 1)',
                        'rgba(75, 192, 192, 1)',
                        'rgba(153, 102, 255, 1)',
                        'rgba(255, 159, 64, 1)'
                    ],
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    yAxes: [{
                        ticks: {
                            beginAtZero:true
                        }
                    }]
                }
            }
        })
    }
}

如果用第2步,typings search沒有搜尋到你要的庫

但是,npm可以搜到相關ts檔案,一定要是ts檔案(比如ng開頭的,如ng-circle-progress),才會有*.d.ts宣告檔案,才可以直接引用 例如:circle-progress這個庫在typings搜尋沒有,但是可以:
npm search circle-progress
npm install ng-circle-progress --save
然後第4步引用就一樣了。