2016-11-16 53 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

相关问题