国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法實例分析

2019-11-19 14:49:25
字體:
供稿:網(wǎng)友

本文實例講述了Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法。分享給大家供大家參考,具體如下:

管道(Pipe)可以根據(jù)開發(fā)者的意愿將數(shù)據(jù)格式化,還可以多個管道串聯(lián)。

純管道(Pure Pipe)與非純管道(Impure Pipe)

管道分純管道(Pure Pipe)和非純管道(Impure Pipe)。默認情況下,管道都是純的,在自定義管道聲明時把pure標志置為false,就是非純管道。如:

@Pipe({ name: 'sexReform', pure:false})

純管道和非純管道的區(qū)別:

① 純管道:

Angular只有檢查到輸入值發(fā)生純變更時,才會執(zhí)行純管道。純變更指的是,原始類型值(String,Number,Boolean,Symbol)的改變,或者對象引用的改變(對象值改變不是純變更,不會執(zhí)行).

② 非純管道

Angular會在每個組件的變更檢測周期執(zhí)行非純管道。所以,如果使用非純管道,我們就得注意性能問題了。

管道使用語法

{{expression | pipe : arg}}

如果是鏈式串聯(lián):

{{expression | pipe1 : arg | pipe2 | pipe3 }}

常用內(nèi)置管道

管道 類型 功能
DatePipe 純管道 日期格式化
JsonPipe 非純管道 使用JSON.stringify()將對象轉(zhuǎn)成json字符串
UpperCasePipe 純管道 將文本中的字母全部轉(zhuǎn)在大寫
LowerCasePipe 純管道 將文本中的字母全部轉(zhuǎn)成小寫
DecimalPipe 純管道 數(shù)值格式化
CurrencyPipe 純管道 貨幣格式化
PercentPipe 純管道 百分比格式化
SlicePipe 非純管道 數(shù)組或字符串取切割

DatePipe

語法:{{expression | date:format}}

expression支持日期對象、日期字符串、毫秒級時間戳。format是指定的格式,常用標志符:

y 年 y使用4位數(shù)字表示年份(2017),yy使用兩位數(shù)字表示(17)
M 月 M 1位或兩位數(shù)字(2或10、11、12),MM 兩位數(shù)字表示,前面補0(02)
d 日 d 一位或兩位數(shù)字(9) dd兩位數(shù)字,前面補0(09)
E 星期 EEE 三位字母縮寫的星期 EEEE 星期全稱
j 12小時制時間 j (9 AM) jj (09 AM)
h 12小時制小時 h(9) hh (09)
H 24小時制小時 H(9) HH (09)
m 分 m (5) mm (05)
s 秒 s (1) ss (01)
z 時區(qū) z China Standard Time

DecimalPipe

語法:{{expression | number[: digiInfo] }}

digiInfo格式:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

即:整數(shù)位保留最小位數(shù).小數(shù)位保留最小位數(shù)-小數(shù)位最大保留位置

默認值: 1.0-3

CurrencyPipe

語法:{{expression | currency[: currencyCode[: symbolDisplay[: digiInfo]]] }}

digiInfo格式與DecimalPipe相同,不再解釋。

currencyCod是指貨幣代碼,其值為ISO 4217標準,人民幣CNY,美元USD,歐元 EUR.
symbolDisplay 是一個布爾值,true時顯示貨幣符號($¥) false顯示貨幣碼

PercentPipe

語法:{{expression | percent[: digiInfo] }}

digiInfo格式與DecimalPipe相同,不再解釋。

SlicePipe

語法:{{expression | slice: start [: end] }}

expression 可以是一個字符串或數(shù)組。字符串時,該管道調(diào)用String.prototype.slice()方法截取子串。如果是數(shù)組,調(diào)用Array.prototype.slice()方法取數(shù)組子元素。

自定義管道

除了使用內(nèi)置的管道,還可以通過自定義管道實現(xiàn)更復(fù)雜的功能。

創(chuàng)建管道:

ng g pipe sexReform

angular-cli會幫我們創(chuàng)建SexReformPipe管道,這個管道的功能是根據(jù)male、female返回中文的男、女。

代碼:

import {Pipe, PipeTransform} from '@angular/core';@Pipe({ name: 'sexReform', //非純管道 pure:false})export class SexReformPipe implements PipeTransform { transform(value: any, args?: any): any {  let chineseSex;  switch (value) {   case 'male':    chineseSex = '男';    break;   case 'female':    chineseSex = '女';    break;   default:    chineseSex = '未知性別';    break;  }  return chineseSex; }}

重點在于實現(xiàn)PipeTransform接口的transform方法,定義為非純管道僅用于演示,非純管道對性能影響較大,盡量避免。

演示代碼

組件:

import { Component, OnInit } from '@angular/core';@Component({ selector: 'app-pipe', templateUrl: './pipe.component.html', styleUrls: ['./pipe.component.css']})export class PipeComponent implements OnInit { date=new Date(); money=5.9372; object={title:'ffff',subTitle:'subtitlefff'}; str='abcdABCD'; percent=0.97989; constructor() { } ngOnInit() { }}

模板:

<p> {{date| date:'y-MM-dd HH:mm:ss'}} <br /> {{object| json }} <br /> {{str| uppercase }} <br /> {{str| lowercase }} <br /> {{money| number:'2.4-10' }} <br /> {{money| number:'5.1-2' }} <br /> {{money| currency:'CNY':false:'1.1-2' }} <br /> {{percent| percent:'1.1-2' }} <br /> {{str| slice:1:3 }} <br /> {{'female'| sexReform }} <br /></p>

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門與進階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對大家AngularJS程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 射阳县| 聂拉木县| 兰西县| 肥乡县| 东乌珠穆沁旗| 垫江县| 卓尼县| 图片| 富源县| 得荣县| 平陆县| 广东省| 社会| 沾化县| 石屏县| 稷山县| 临猗县| 乌兰县| 丰宁| 龙陵县| 孟州市| 天长市| 巴彦县| 乌拉特中旗| 罗山县| 清水河县| 正镶白旗| 甘洛县| 凤翔县| 龙陵县| 大化| 梁山县| 达孜县| 通渭县| 邢台市| 嵩明县| 开封县| 金湖县| 武功县| 固镇县| 塔城市|