###### tags: `Angular` `pipes` # Pipes元件 ## {{ ‘傳入值’管你傳什麼 | pipe元件 }} - 特性 - pipes 與 pipes 間可串接 - SlicePipe 可搭配結構型指令 (ngfor) 進行切割摘要 - 內建 - DatePipe - UpperCasePipe => 全字母轉大寫 - LowerCasePipe => 全字母轉小寫 - CurrencyPipe - and PercentPipe - DecimalPipe => 數字標示顯示方法 - CurrencyPipe => 貨幣顯示方法 - SlicePipe => 切割 可切割字串及陣列 ### DecimalPipe 標準式 數字標示顯示方法 ```html <P> {{ value_expression | number [ : digitsInfo [ : locale ] ] }}</P> <!-- value_expression => 參數代號 與ts連動 . digitsInfo預設 一位.三位 => 0.123 --> <p> {{e | number:'3.1-5'}}</p> <!-- 代表小數點前 三位 點後 一到五位 --> <p>e (french): {{e | number:'4.5-5':'zh-TW'}}</p> <!-- 國際化表示數值 --> <p> {{e | number:'3.5-5'}}</p> <!-- 代表小數點前 三位 點後 顯示五位 --> ``` ### CurrencyPipe 標準式 貨幣顯示方法 > 台幣 TWD ``` HTML <p>{{ value_expression | currency [ : currencyCode [ : display [ : digitsInfo [ : locale ] ] ] ] }}</p> <!--output '$0.26'--> <p>A: {{a | currency}}</p> <!--output 'CA$0.26'--> <p>A: {{a | currency:'CAD'}}</p> <!--output 'CAD0.26'--> <p>A: {{a | currency:'CAD':'code'}}</p> <!--output 'CA$0,001.35'--> <p>B: {{b | currency:'CAD':'symbol':'4.2-2'}}</p> <!--output '$0,001.35'--> <p>B: {{b | currency:'CAD':'symbol-narrow':'4.2-2'}}</p> <!--output '0 001,35 CA$'--> <p>B: {{b | currency:'CAD':'symbol':'4.2-2':'fr'}}</p> <!--output 'CLP1' because CLP has no cents--> <p>B: {{b | currency:'CLP'}}</p> ``` ### PercentPipe 標準式 百分比顯示方法 ``` HTML <P> {{ value_expression | percent [ : digitsInfo [ : locale ] ] }} </P> <!-- digitsInfo預設 兩位 : 0.123 => 12% 可指定 --> ``` ### DatePipe ```HTML <p> {{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }} </p> ``` - format 預設可傳入值為下 - 'short' => 'M/d/yy, h:mm a' (6/15/15, 9:03 AM). - 'medium' => 'MMM d, y, h:mm:ss a' (Jun 15, 2015, 9:03:01 AM). - 'long' => 'MMMM d, y, h:mm:ss a z' (June 15, 2015 at 9:03:01 AM GMT+1). - 'full' => 'EEEE, MMMM d, y, h:mm:ss a zzzz' (Monday, June 15, 2015 at 9:03:01 AM GMT+01:00). - 'shortDate' => 'M/d/yy' (6/15/15). - 'mediumDate' => 'MMM d, y' (Jun 15, 2015). - 'longDate' => 'MMMM d, y' (June 15, 2015). - 'fullDate' => 'EEEE, MMMM d, y' (Monday, June 15, 2015). - 'shortTime' => 'h:mm a' (9:03 AM). - 'mediumTime' => 'h:mm:ss a' (9:03:01 AM). - 'longTime' => 'h:mm:ss a z' (9:03:01 AM GMT+1). - 'fullTime' => 'h:mm:ss a zzzz' (9:03:01 AM GMT+01:00). ### SlicePipe 切割字串及陣列 ```html <!-- 標準式 --> {{ value_expression | slice : start [ : end ] }} <a [href]="item.href">{{item.title | slice:0:20}}</a> <!-- 顯示"從命令提示字元中開啟 Visual St" => 20字元 --> <a [href]="item.href">{{item.title | slice:-20}}</a> <!-- 顯示"從命令提示字元中開啟 Visual St" => 倒數20字元 --> <!-- 不加結尾參數 --> <article class="post" id="post0" *ngFor="let item of data |slice:0:3"> <!-- 1-3筆 --> <article class="post" id="post0" *ngFor="let item of data |slice:2:3"> <!-- 只顯示第3筆 --> ```