Angular 管道

?一伪嫁、管道優(yōu)點(diǎn)

(1)可以使用戶的體驗(yàn)變得好

(2)可以省去一些重復(fù)性的工作

二领炫、管道的常規(guī)使用

  1. 一般是用于 Mustache 語(yǔ)法(插值語(yǔ)法)的雙向數(shù)據(jù):
    {{ item | json }} // 內(nèi)置的 JsonPipe 管道
  2. 管道帶參數(shù)

{{ item | slice:0:4 }} // 管道后面冒號(hào)跟隨的就是參數(shù)

  1. 多重管道調(diào)用

{{ item | slice:0:4 | uppercase }}

這是使用了 "數(shù)據(jù)流" 的概念,用過 Linux 管道的小伙伴一看就知道了张咳。

item 的輸入數(shù)據(jù)給 slice 處理后再丟給 uppercase 處理帝洪,最終返回的結(jié)果集就是切割后并且轉(zhuǎn)為大寫字符的數(shù)據(jù)。

三脚猾、自定義管道

// 自定義管道必須依賴 Pipe 和 PipeTransform
import { Pipe, PipeTransform } from '@angular/core'; 
// 管道裝飾符 葱峡, name就是管道名稱
@Pipe({ name: 'name' }) 
export class PipeNamePipe implements PipeTransform { 
    // value : 就是傳入的值 
    // ...args : 參數(shù)集合(用了...拓展符),會(huì)把數(shù)組內(nèi)的值依次作為參數(shù)傳入 
    // ...args可以改成我們常規(guī)的寫法(value:any,start:number,end:number) 
    transform(value: any, ...args: any[]): any { 
    }
}

實(shí)現(xiàn)一個(gè)切割字符串然后拼接...的管道【用于渲染數(shù)據(jù)過長(zhǎng)截取】

import { Pipe, PipeTransform } from '@angular/core';
?
@Pipe({
  name: 'SliceStr'
})
?
export class SliceStrPipe implements PipeTransform {
  /**
    * 截圖字符串字符
    * option(start,end,[+str])
    */
  // start和end及extraStr后面都跟隨了一個(gè)問號(hào),代表這個(gè)為可選參數(shù)而不是必選的
  // 功能就是拼接自定義的字符串(...)等
  transform(value: string, start?: number, end?: number, extraStr?: string): string {
    // console.log( value );
    if (value) {
      if (typeof (start) === 'number' && typeof (end) === 'number') {
        if (value.length > end && extraStr && typeof (extraStr) === 'string') {
          // console.log( start, end, extraStr );
          return value.slice(start, end) + extraStr.toString();
        } else {
          return value.slice(start, end);
        }
      } else {
        return value;
      }
    } else {
      return value;
    }
?
  }
}

四龙助、如何使一個(gè)自定義管道生效 ★★★

  1. 單一引入生效
// 功能管道
import { SliceStrPipe } from './SliceStr/slice-str.pipe';
?
@NgModule( {
  imports: [
    CommonModule
  ],
  declarations: [
    SliceStrPipe  // 管道生效必須放到declarations里面
  ],
  schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
  1. 模塊引入

如果寫了一組管道砰奕,然后放到一個(gè)自定義模塊里面,最后導(dǎo)出泌参。在其他模塊引入這個(gè)模塊就能直接使用了脆淹。

import ..........
const pipe =  [
    IsCitizenIDPipe,
    IsEmailPipe,
    IsEnhancePasswordPipe,
    IsFixedPhonePipe,
    IsLicensePipe,
    IsMobilePhonePipe,
    IsNormalPasswordPipe,
    IsNumberPipe,
    IsUsernamePipe,
    SliceStrPipe,
    TimeDifferencePipe,
    TransDatePipe,
    ThousandSeparationPipe
];
// 這里是重點(diǎn)
@NgModule( {
  imports: [
    CommonModule
  ],
  declarations: [
    MitPipeComponent,
    ...pipe,
  ],
  exports: [ ...pipe ],
  schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class MitPipeModule { }
?
// ----- 引入module
?
// 管道 -- 把MitPipeModule丟到imports里面就行了
import { MitPipeModule } from '../../../../../widgets/mit-pipe/mit-pipe.module';

轉(zhuǎn)自:https://juejin.im/post/58db5b55128fe1006cdf0bb3

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市沽一,隨后出現(xiàn)的幾起案子盖溺,更是在濱河造成了極大的恐慌,老刑警劉巖铣缠,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烘嘱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蝗蛙,警方通過查閱死者的電腦和手機(jī)蝇庭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捡硅,“玉大人哮内,你說我怎么就攤上這事。” “怎么了北发?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵纹因,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我琳拨,道長(zhǎng)瞭恰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任狱庇,我火速辦了婚禮惊畏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘密任。我一直安慰自己颜启,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布浪讳。 她就那樣靜靜地躺著农曲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驻债。 梳的紋絲不亂的頭發(fā)上乳规,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音合呐,去河邊找鬼暮的。 笑死,一個(gè)胖子當(dāng)著我的面吹牛淌实,可吹牛的內(nèi)容都是我干的冻辩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拆祈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼恨闪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起放坏,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤咙咽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后淤年,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钧敞,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年麸粮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溉苛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弄诲,死狀恐怖愚战,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤寂玲,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布视乐,位于F島的核電站,受9級(jí)特大地震影響敢茁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜留美,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一彰檬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谎砾,春花似錦逢倍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至挚币,卻和暖如春亮蒋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妆毕。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工慎玖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笛粘。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓趁怔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親薪前。 傳聞我的和親對(duì)象是個(gè)殘疾皇子润努,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • # 1:內(nèi)置管道 date | json | uppercase | lowercase | number |...
    __凌閱讀 390評(píng)論 0 0
  • 什么是管道 每個(gè)應(yīng)用開始的時(shí)候差不多都是一些簡(jiǎn)單任務(wù):獲取數(shù)據(jù)、轉(zhuǎn)換它們示括,然后把它們顯示給用戶铺浇。獲取數(shù)據(jù)可能簡(jiǎn)單到...
    前端路上的小兵閱讀 404評(píng)論 0 3
  • 1. 管道 管道能很好的封裝和共享的通用“值-顯示”轉(zhuǎn)換邏輯。我們可以像樣式一樣使用它們垛膝,把它們?nèi)拥侥0灞磉_(dá)式中随抠,...
    HW_____T閱讀 477評(píng)論 0 0
  • 組件 使用命令創(chuàng)建組件 創(chuàng)建組件的命令:ng generate component 組件名 生成的組件組成: 組件...
    cj_jax閱讀 1,125評(píng)論 0 0
  • 這篇完全就是個(gè)人筆記了,大概記了一下服務(wù)繁涂,注入和管道的用法拱她。 服務(wù) (Service) angular服務(wù)的主要目...
    啃香菜的花蘿蘿閱讀 573評(píng)論 0 2