angular - How can i create multiple LineCanvas Graph in ionic 2 page? -
i trying create responsive page on ionic 2. have 1 array of objects, , inside of object have data pass graph. so, if have 3 objects, want create 3 linecanvas graph. using linecanvas chart.js.
i post error , code:
error:
error_handler.js:54 exception: uncaught (in promise): typeerror: cannot read property 'nativeelement' of undefined typeerror: cannot read property 'nativeelement' of undefined @ safesubscriber._next menu.html
<ion-content> <div *ngfor="let tag2 of tags"> <div class="margingraph"> <ion-card> <ion-card-content> <div> {{tag2.body.tag.nomedatag}} </div> <div (click)='maisinfotag();'> <canvas id="linecanvas"></canvas> </div> </ion-card-content> </ion-card> </div> </div> </ion-content> menu.ts
import { component, viewchild , elementref} '@angular/core'; import { navcontroller, navparams, menucontroller, toastcontroller } 'ionic-angular'; import { storage } '@ionic/storage'; import { chart } 'chart.js'; import { tagsuser } '../../providers/tags-user.service'; import { maisinfotagpagepage } '../mais-info-tag-page/mais-info-tag-page'; @component({ selector: 'page-menu-page', templateurl: 'menu-page.html', providers: [tagsuser] }) export class menupagepage { @viewchild('linecanvas') linecanvas: elementref; linechart: any[]; tags: any; constructor(public navctrl: navcontroller, public navparams: navparams, public tag: tagsuser, public menu: menucontroller, public store: storage, public toastctrl: toastcontroller) { this.menu.enable(true); } ionviewdidload() { settimeout(() => { this.store.get('id').then((id) => { this.tag.gettags(id).subscribe(data => { this.tags = data; console.log("tagufgudas", this.tags); if (data[0]["body"].tag.idtag == null) { this.presenttoasttag(); } else { this.linechart = []; (var = 0; <= 3; i++) { this.linechart.push(new chart(this.linecanvas.nativeelement, { type: 'line', data: { labels: ["segunda", "terça", "quarta", "quinta", "sexta", "sabado", "domingo"], datasets: [ { label: "maria", fill: false, linetension: 0.1, backgroundcolor: "rgba(75,192,192,0.4)", bordercolor: "rgba(75,192,192,1)", bordercapstyle: 'butt', borderdash: [], borderdashoffset: 0.0, borderjoinstyle: 'miter', pointbordercolor: "rgba(75,192,192,1)", pointbackgroundcolor: "#fff", pointborderwidth: 1, pointhoverradius: 5, pointhoverbackgroundcolor: "rgba(75,192,192,1)", pointhoverbordercolor: "rgba(220,220,220,1)", pointhoverborderwidth: 2, pointradius: 1, pointhitradius: 10, data: [1, 2, 3, 4, 5, 6, 7], spangaps: false, } ] }, options: { legend: { display: false }, tooltips: { callbacks: { label: function (tooltipitem) { return tooltipitem.ylabel; } } } } })); } } }, error => { this.presenttoastconnect(); }); }) }, 5000); } presenttoasttag() { let toast = this.toastctrl.create({ message: 'este utilizador não tem nenhuma tag associada!', duration: 3000, position: 'bottom', }); toast.present(); } presenttoastconnect() { let toast = this.toastctrl.create({ message: 'ups, alguma coisa correu mal. tente novamente mais tarde', duration: 3000, position: 'bottom', }); toast.present(); } }
Comments
Post a Comment