2017-04-13 36 views
0

我基本上試圖計數,然後由ngFor指令列出的列表數。我遵循了很多解決方案來解決我的問題,但這不是成功的。下面是我的代碼,我得到的錯誤,父母沒有定義。使用ngFor計數項目與管道 - 角2

@Pipe({name: 'keys'}) 
export class KeysPipe implements PipeTransform { 


    parent : string; 
    transform(value) : any { 
     let keys = []; 



     if(value) { 

      this.parent = value; 

      return Object.keys(value) 
} 
    } 
} 

HTML

<div *ngFor="let game of games"> 

    <div *ngFor="let key of game| keys"> 

    <li> {{game[key].type}} </li> 

    {{ game[key].location}} 

    Count: {{game.parent.length}} 

</div> 


</div> 

輸出

mario - germany 
kart - london 
rings - france 

total number of items = 3 

回答

0

您可以使用ngFor,而不是一個自定義管道

<div *ngFor="let game of games"> 

    <div *ngFor="let key of game| i=index "> 

    <li> {{game[i].type}} </li> 

    {{ game[i].location}} 

    Count: {{game.parent.length}} 

</div> 
+0

我想顯示的項目總數。沒有列出項目 – XamarinDevil

+0

旁邊的數字,你可以給出一個例子json和期望的輸出。 '顯示的項目總數可以使用games.length * ..'本身計算 – Aravind

+0

請看看現在編輯的問題並看看輸出 – XamarinDevil

0

你數應在div之外的0,

<div *ngFor="let game of games"> 
    <div *ngFor="let key of game| i=index "> 
    <li> {{game[i].type}} </li> 
    {{ game[i].location}} 
</div> 
<div> 
total number of items: {{game.parent.length}} 
</div> 
+0

這是拋出一個錯誤'未處理的承諾拒絕:模板解析錯誤: TypeError:無法讀取屬性'toUpperCase'的未定義' – XamarinDevil

+0

此外,我真的需要使用鍵來顯示數據 – XamarinDevil

+0

你在哪裏使用toUpperCase? – Sajeetharan