Можно ли вызвать трубку Angular2 из трубы?

Я возвращаю с сервера объект, содержащий массив столбцов с их определениями и массив строк. Я хотел бы перебирать столбцы и строки, когда я строю свою HTML-таблицу и форматирую ячейки в соответствии с типом столбца, возвращаемого с использованием канала "format".

Например

WS Response:

{
  "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>

Есть ли какой-нибудь способ, которым мой "форматный" канал может просто выполнять роль делегатора для правильного встроенного канала (где он выходит), в зависимости от типа столбца? Я не хочу повторно реализовывать DecimalPipe, DatePipe и т. Д. И т. Д.

1 ответ

Решение

Да, вы можете называть трубы - просто навязать их и позвонить transform:

transform(cell: any, column: any): any {
    if (column.typeName === "INTEGER") {
        let pipe = new DecimalPipe();
        return pipe.transform(cell, "1.0-0");
    }
    // more here ...
}
Другие вопросы по тегам