2016-06-09 65 views
0

我有使用此代碼角2 ngfor反向次序和相同的索引

<div *ngFor="let object of questionAnswer | reverse let i = index" [attr.data-index]="i"> 
     <p-panel header="{{object.question}}" [toggleable]="true" [collapsed]="true"> 
      <div class="row"> 
       <div class="col-sm-6"> 
        {{object.answer}} 
       </div> 
       <div class="col-sm-6"> 
        <button type="button" class="paneltools btn btn-default dropdown-toggle" data-toggle="dropdown"> 
         <i class="fa fa-cog fa-fw" aria-hidden="true"> </i> <span class="caret"></span></button> 
        <ul class="dropdown-menu" role="menu"> 
         <li><a (click)="editShow(i)">Edit</a></li> 
         <li><a (click)="remove(i)">Delete</a></li> 
        </ul> 
       </div> 
      </div> 
     </p-panel> 
    </div> 

我想顯示以相反的順序的項目顯示在面板 一個數組項的應用程序,以第一顯示較新的項目和通過使用管道代碼,我發現在這裏工作得很好

export class ChallengesReversePipe { 
transform(value) { 
    return value.slice().reverse(); 
} 

}

,但我的大問題,這樣做是當這樣的即時得到反向索引號nd我需要從反例如 之前的原始索引編號的頂部項目的索引應該是陣列 陣列中的最後一個索引編號,我似乎找不到一種方法來獲取它:( 任何幫助嗎?

+0

這似乎直覺。你正在修改集合(也就是索引順序),但是你想保留原始索引?不要使用索引,然後...使用Id。 –

+0

您可以(在管道內)將數組中的項目包裝爲諸如'{index:1,value:item}'之類的對象中,然後遍歷這個返回的對象數組並使用'object.id'作爲索引。 –

回答

2

你可以嘗試這樣的事:

[attr.data-index]="questionAnswer.length - i - 1"