2017-05-27 53 views
0

#標籤定義變量我想實現一個ngFor循環顯示多個圖表。它的數量將是可變的,所以我想用一個循環來創建它們全部取決於陣列的數量收到的參數:在ngFor

<ion-list> 
    <ion-card *ngFor="let canvas of canvasList"> 
    <ion-card-header class="backheader"> 
     Position {{canvas.position}} 
    </ion-card-header> 
    <ion-card-content> 
     <canvas #name_{{canvas.position}}</canvas> 
    </ion-card-content> 
    </ion-card> 
</ion-list> 

,但我正在與我的使用#name_X

的錯誤

這是做什麼的正確方法?另外,我不知道我應該怎麼處理這個問題:

@ViewChild('sensor0Canvas') sensor0Canvas; 

這:

this.sensor0Canvas.nativeElement... 

在我的課,我不需要0,1,2,3 ....固定,它也應該是可變的。這是可行的嗎?我應該嘗試另一種方法嗎?

+2

如果你有多個項目,你不想'@ ViewChildren'?就我所知,您無法動態生成模板引用變量,但您可以通過例如類。 – jonrsharpe

+0

其實我不知道我是否需要ViewChildren。我是初學者的離子和角。我會嘗試上課,如果我無法做到這一點,我會留下一定數量的圖表。謝謝 – user1298272

回答

1

至於我會更喜歡你創建你的畫布一個單獨的組件,然後你會得到使用@ViewChildrenQueryList

@Component({ 
selector: 'my-canvas', 
template: '<canvas></canvas>' 
}) 
export class MyCanvasComponent { 
// do handle your canvas element here 
} 

而且在你循環

<ion-list> 
    <ion-card *ngFor="let canvas of canvasList"> 
    <ion-card-header class="backheader"> 
     Position {{canvas.position}} 
    </ion-card-header> 
    <ion-card-content> 
     <my-canvas></my-canvas> 
    </ion-card-content> 
    </ion-card> 
</ion-list> 

,並打通

@ViewChildren(MyCanvasComponent) canvases: QueryList<MyCanvasComponent>; 

所有帆布它會回報你所有的畫布組件的陣列,那麼你可以直接調用它們的方法輸入等從這裏。祝你好運。