2017-11-07 1 views
0

angular4 및 ng2 차트로 작업하고 있습니다. 나는 도넛 형 차트 캔버스 중심에 텍스트를 표시해야합니다. 저는 angular4 캔버스를 처음 사용합니다.angular4에 캔버스를 렌더링하는 방법

Here is my app.component: 

    export class AppComponent { 

     @ViewChild("layout") layout: ElementRef; 


     ngAfterViewInit() { 

     let canvas = this.layout.nativeElement; 

     let context: CanvasRenderingContext2D = this.layout.nativeElement.getContext("2d"); 
     var x = canvas.width/2; 
     var y = canvas.height/2; 

     context.font = '90pt Calibri'; 
     context.textAlign = 'center'; 
     context.fillStyle = 'blue'; 
     context.fillText('Hello Worldetrereygerhg!', x, y); 

     } 


here is my app.component.html 


<div style="display: block; background-color: #e2d8d8;"> 
    <canvas baseChart 
       [data]="doughnutChartData" 
       [colors]="doughnutChartColors" 
       [labels]="doughnutChartLabels" 
       [chartType]="doughnutChartType" 
       (chartHover)="chartHovered1($event)" 
       (chartClick)="chartClicked1($event)" #layout ></canvas> 

</div> 

위의 코드는 아무 효과가 없습니까? 텍스트가 캔버스 어디에도 표시되지 않습니다. 반죽 너트 차트의 텍스트 중심을 추가하는 방법.

Library using: 

[https://valor-software.com/ng2-charts/][1] 
Doughnut 


    [1]: https://valor-software.com/ng2-charts/ 

답변

0

export class AppComponent { 

     canvas: HTMLCanvasElement; 
     ctx: CanvasRenderingContext2D ; 
     container : any; 
     cw : any; 
     ch : any; 


      ngAfterViewInit() { 
      this.container = document.getElementById('container'); 
      this.cw = container.clientWidth; 
      this.ch = container.clientHeight; 
      this.canvas = document.createElement('canvas'); 
      this.ctx = this.canvas.getContext('2d'); 
      this.canvas.width = this.cw; 
      this.canvas.height = this.ch; 
      container.appendChild(this.canvas); 

      } 

<div id="container"></div> 
+0

내 질문을 참조 HTML의 DIV 태그 아래의 추가 구성 요소 클래스의 캔버스를 구축하고 HTML에 동적으로 삽입, 도넛 마크 업 NG2에 의해 제공됩니다 차트를 만들기위한 구성 요소 클래스에 대한 지원은 아직 제공되지 않습니다. 이 상황에서 나는 캔버스 안의 텍스트 (도넛 형 차트의 중심)를 할 필요가있다. –

관련 문제