2017-09-24 3 views
2

ich habe eine ionische 3 eckige app und mit chart.js, um ein donut-diagramm zu zeigen. Nothing Advance nur ein einfaches Donut-Diagramm mit grundlegenden Daten. Das Diagramm wird wie folgt gerendert:ionische 3 eckige chartjs leinwand verschwindet auf zeigen ausblenden

<canvas #doughnutCanvas></canvas> 

Es kommt gut. Jetzt fängt das Problem an, als ich eine Showblende des Ionenkarteninhalts hinzufügte, um die Ansicht umzudrehen. Die Umsetzung sieht aus wie folgt:

<ion-card-content *ngIf="expanded == false" style="padding-bottom:0"> 
     <ion-row no-padding> 
      <ion-col col-auto no-padding> 
       <canvas #doughnutCanvas></canvas> 
      </ion-col> 
     </ion-row> 
    </ion-card-content> 
    <ion-card-content *ngIf="expanded == true" style="padding-bottom:0"> 
     <ion-list> 
      .... 
     </ion-list> 
    </ion-card-content> 

zeigen, wenn ich einen Knopf drücken i die von false auf true die Ansicht, die Änderungen als Folge erweitert ändern und zeigt eine Liste. Wenn ich jedoch die Taste erneut drücke, um den Wert von "wahr" auf "falsch" umzuschalten, wird das Diagramm nicht gerendert. nur ein leerer Ionen-Karten-Inhalt. Da andere Inhalte auf der Diagrammseite in Ordnung sind, hat dies nur etwas mit chartjs zu tun. Bitte beraten Sie

Antwort

1

Dies sollte funktionieren:

<ion-card-content [hidden]="expanded" style="padding-bottom:0"> 
        <ion-row no-padding> 
         <ion-col col-auto no-padding> 
         <canvas #doughnutCanvas></canvas> 
        </ion-col> 
        </ion-row> 
    </ion-card-content> 
    <ion-card-content [hidden]="!expanded" style="padding-bottom:0"> 
        <ion-list> 
          .... 
        </ion-list> 
    </ion-card-content> 
+1

habe ich ti versteckte Werte Flip. d. h. erweitert zu! erweitert – Vik

2

Das Problem ist, dass das Diagramm nicht neu gerendert wird, wenn die Leinwand erstellt und ngIf vollständig entfernt/fügt die Dom.

Entweder ändern Sie Ihren ngIf zu [hidden]oder Satz chart.js das Diagramm, wenn expanded Änderungen von false auf true neu zu machen.

<ion-card-content [hidden]="expanded == false" style="padding-bottom:0"> 
        <ion-row no-padding> 
         <ion-col col-auto no-padding> 
         <canvas #doughnutCanvas></canvas> 
        </ion-col> 
        </ion-row> 
    </ion-card-content> 
+0

wenn i * ngIf ändern versteckt wie u oben erwähnt dann ist das Diagramm an allen – Vik

+0

machen nicht mehr genauem Hinsehen scheint es mein Element selbst ein weg, so geht Rendern funktioniert wieder nicht. @ViewChild ('doughnutCanvas') doughnutCanvas; kommt undefiniert, wenn ich zurück – Vik