欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年11月29日 11:52:52   作者:admin  
這篇文章主要介紹了Angular2管道Pipe及自定義管道格式數(shù)據(jù)用法,結(jié)合實(shí)例形式詳細(xì)分析了Angular2管道與純管道相關(guān)概念、語法及使用技巧,需要的朋友可以參考下

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

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

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

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

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

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

① 純管道:

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

② 非純管道

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

管道使用語法

{{expression | pipe : arg}}

如果是鏈?zhǔn)酱?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支持日期對象、日期字符串、毫秒級時(shí)間戳。format是指定的格式,常用標(biāo)志符:

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

DecimalPipe

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

digiInfo格式:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

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

默認(rèn)值: 1.0-3

CurrencyPipe

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

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

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

PercentPipe

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

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

SlicePipe

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

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

自定義管道

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

創(chuàng)建管道:

ng g pipe sexReform

angular-cli會幫我們創(chuàng)建SexReformPipe管道,這個(gè)管道的功能是根據(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;
 }
}

重點(diǎn)在于實(shí)現(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入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

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

相關(guān)文章

  • AngularJS入門心得之directive和controller通信過程

    AngularJS入門心得之directive和controller通信過程

    Angular JS (Angular.JS) 是一組用來開發(fā)Web頁面的框架、模板以及數(shù)據(jù)綁定和豐富UI組件,接下來通過本文給大家介紹AngularJS入門心得之directive和controller通信過程,對angularjs相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Angular開發(fā)者指南之入門介紹

    Angular開發(fā)者指南之入門介紹

    本篇文章主要介紹了Angular開發(fā)者指南的入門知識,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • AngularJS教程之環(huán)境設(shè)置

    AngularJS教程之環(huán)境設(shè)置

    本文主要介紹AngularJS環(huán)境設(shè)置,學(xué)習(xí)AngularJS的朋友肯定要設(shè)置開發(fā)軟件的環(huán)境,這里詳細(xì)介紹安裝設(shè)置流程,有需要的朋友可以參考下
    2016-08-08
  • 深入學(xué)習(xí)JavaScript的AngularJS框架中指令的使用方法

    深入學(xué)習(xí)JavaScript的AngularJS框架中指令的使用方法

    這篇文章主要介紹了深入學(xué)習(xí)JavaScript的AngularJS框架中指令的使用方法,指令的使用是Angular入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-03-03
  • AngularJS2中一種button切換效果的實(shí)現(xiàn)方法(二)

    AngularJS2中一種button切換效果的實(shí)現(xiàn)方法(二)

    這篇文章主要介紹了AngularJS2中一種button切換效果的實(shí)現(xiàn)方法(二),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • 淺談Angular的12個(gè)經(jīng)典問題

    淺談Angular的12個(gè)經(jīng)典問題

    Angular作為目前最為流行的前端框架,受到了前端開發(fā)者的普遍歡迎。不論是初學(xué)Angular的新手,還是有一定Angular開發(fā)經(jīng)驗(yàn)的開發(fā)者,了解本文中的12個(gè)經(jīng)典面試問題,都將會是一個(gè)深入了解和學(xué)習(xí)Angular2的知識概念的絕佳途徑。
    2021-05-05
  • angularjs 表單密碼驗(yàn)證自定義指令實(shí)現(xiàn)代碼

    angularjs 表單密碼驗(yàn)證自定義指令實(shí)現(xiàn)代碼

    這篇文章主要介紹了angularjs 表單密碼驗(yàn)證自定義指令實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2016-10-10
  • 基于datepicker定義自己的angular時(shí)間組件的示例

    基于datepicker定義自己的angular時(shí)間組件的示例

    這篇文章主要介紹了基于datepicker定義自己的angular時(shí)間組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • AngularJS入門教程之路由與多視圖詳解

    AngularJS入門教程之路由與多視圖詳解

    本文主要介紹AngularJS 路由與多視圖詳解,這里整理了相關(guān)資料及示例代碼,詳細(xì)說明了在開發(fā)過程中如何應(yīng)用,有興趣的朋友可以看下
    2016-08-08
  • angular使用TweenMax動(dòng)畫庫的問題和解決方法

    angular使用TweenMax動(dòng)畫庫的問題和解決方法

    這篇文章主要給大家介紹了關(guān)于angular使用TweenMax的相關(guān)問題和解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論