2016-05-27 102 views
1

我想用Angular2開發一個web應用程序,它包含一個谷歌餅圖。Angular2谷歌餅圖可視化

我爲餅圖創建了一個指令,這裏是代碼。

@Directive({ 
selector: 'pie-chart' 
}) 

export class PieChartDirective { 
    el: HTMLElement; 
    w: any; 

private _content: any = {}; 

@Input() 
set content(c: any) { 
    this._content = c; 

    this.draw(); 
} 
get content() { return this._content; } 

constructor(elementRef: ElementRef) { 
    this.w = window; 

    this.el = elementRef.nativeElement; 

    if (!this.w.google) { console.error("Google chart yuklenmedi.."); }; 
} 

draw() { 

    var data = this.w.google.visualization.arrayToDataTable([ 
     ['Label', 'Value'], 
     ['Hedef ve Üstü', this._content.hedeF_UST], 
     ['Hedef Altı', this._content.hedeF_ALT] 
    ]); 

    let options = { 
     "backgroundColor": '#f1f8e9', 
     width: '100px', 
     title: this._content.name, 
     colors: ['#088A4B', 'red'], 
     chartArea: { 
      left: "5%", 
      top: "20%", 
      height: "75%", 
      width: "90%" 
     }    
    }; 


    (new this.w.google.visualization.PieChart(this.el)) 
     .draw(data, options); 
} 

}

然後我用它在應用程序組件。在這之前沒有問題,它適用於IE 10,11和Edge以及Chrome。但是Firefox有問題。它可視化圖表視圖非常小。

This is chrome and IE view

This is firefox view

+0

是在顯示它之前繪製的圖表嗎? – WhiteHat

+0

我在像 這樣的組件中使用此僞指令在這種情況下,是否在繪製之前顯示? @WhiteHat – yeulucay

+0

嘗試在圖表選項中設置特定寬度_和高度_作爲數字 - 而不是寬度:'100px''寬度:100' - >請參閱[配置選項](https://開發人員。 google.com/chart/interactive/docs/gallery/piechart#configuration-options) – WhiteHat

回答