2016-11-16 62 views
3

我從服務器返回一個包含具有它們的定義和行數組的列的對象。我想在構建HTML表格時迭代列和行,並根據使用「格式」管道返回的列類型來格式化單元格。我可以從管道調用Angular2管道嗎?

例如

WS響應:

{ 
    "columns" [{"precision":10,"name":"PAGES","typeName":"INTEGER","scale":0..., 
    "rows":[{"PAGES":6531....}, [{"PAGES":6531....}] 
} 

HTML片段:

<tr *ngFor="let row of invoices?.rows"> 
    <td *ngFor="let column of invoices?.columns> 
    {{row[column.name] | format : column}} 
    </td> 
</tr> 

有什麼辦法我的 「格式」 管可以直接充當AA委託到正確的內置管道(哪一個退出),取決於列的類型?我不希望有重新實現DecimalPipe,DatePipe,等等,等等

回答

4

是的,你可以調用管道 - 只是instatiate他們並呼籲transform

transform(cell: any, column: any): any { 
    if (column.typeName === "INTEGER") { 
     let pipe = new DecimalPipe(); 
     return pipe.transform(cell, "1.0-0"); 
    } 
    // more here ... 
} 
+1

工作一種享受,謝謝。我唯一需要做的就是注入LOCALE_ID並將其傳遞給小數點管道構造函數。 – Tim