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

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -