Angular 自定義管道 pipes 的使用

Donjan發表於2019-12-18

Angular的管道是處理資料到顯示的邏輯,我們獲取的使用者的roles是json的陣列,並不能直接展示,所以需要寫一個管道展示使用者所有的角色。

建立src/app/helpers/pipes.ts寫一個自定義管道arrayToString

  /**
   * 
   * @param value 傳入值
   * @param defaultStr 預設顯示
   * @param split 分割符
   * @param key object的key值
   */
  transform(value: Array<any>, defaultStr = '', split = ',', key?: string): string {
    if (value.length) {
      let strs;
      if (key) {
        strs = new Array();
        for (let v of value) {
          for (let k in v) {
            if (k == key) {
              strs.push(v[k]);
            }
          }
        }
      } else {
        strs = value;
      }
      return strs.join(split);
    } else {
      return defaultStr;
    }
  }

src/app/app-routing.module.ts匯入

import { ArrayToStringPipe } from './helpers/pipes';

並新增到declarations

  declarations: [
    ...
    ArrayToStringPipe,
    ...
  ]

在模板中使用src/app/views/user/list.component.html

{{m.roles | arrayToString:'普通使用者':',':'name'}}

部落格:《PHP 微服務練兵》系列教程

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章