什麼是管道(PIPE)?這篇文章跟大家介紹一下Angular中的管道(PIPE),聊聊內建管道和自訂管道的方法,希望對大家有所幫助!
什麼是管道(PIPE)
PIPE,翻譯為管道。 Angular 管道是一種編寫可以在HTML元件中宣告的顯示值轉換的方法。 Angular 管道之前在 AngularJS 中被稱為過濾器,從 Angular 2開始就被稱為管道。管道將資料作為輸入並將其轉換為所需的輸出。 【相關教學推薦:angular教學、程式設計教學】
簡單來說,就是Angular Pipes 可以幫我們把我們的輸入,包括字串,整數和日期等等,按照我們的需要轉換為特定的格式並且在瀏覽器中顯示。透過插值表達式,我們可以定義管道並且在特定的情況下使用它,在 Angular 中提供給了我們許多不同類型的管道,當然,你甚至可以去自訂管道。
舉一個比較簡單的例子,日期的格式是多種多樣的,你可以透過管道,進行各種格式之間的轉化,例如把秒數轉化為時分秒。
內建管道
#上面提到了,Angular 中提供給了我們許多不同類型的管道,這些都是屬於Angular 的內建管道,至於內建管道都有什麼,要怎麼用,下面透過程式碼來示範一下。
時間管道date
我們新建一個Angular 項目,並且在頁面中新增一個new Date()
:
<div>{{data}}</div> ... export class AppComponent { title = 'my-app'; data = new Date() }
頁面就會顯示目前的時間:
#那麼我們接下去就可以使用內建的管道來進行一個時間格式的轉化,管道的語法需要在變數後面加上|
符號,並且宣告管道
<div>{{data | date:'yyyy-MM-dd'}}</div>
這裡我們用到了date
這個管道,關於管道具體的參數詳情可以看一下官方文檔,裡面介紹了它所提供的所有給你轉化的時間格式。
Angular - DatePipe
https://angular.cn/api/common/DatePipe#description
在我們設定好管道之後,瀏覽器中的時間已經發生了變化了
其他管道
Angular也提供了其他管道,比如說改變人名幣格式的管道(currency):
Angular - CurrencyPipe
https://angular.cn/api/common/CurrencyPipe
還有將字串轉換為大寫的管道(uppercase):
<div>{{'ASDasd' | uppercase }}</div>
Angular - UpperCasePipe
#https: //angular.cn/api/common/UpperCasePipe
自訂管道
在上面我們介紹了幾種內建管道,那萬一要是內建管道都無法滿足我們開發的需求,那麼Angular 也給我們提供了自訂管道,你可以自己去定一個管道,定義要去如何轉換輸入。
我們可以透過Angular 提供給我們的命令列去快速產生一個管道:
ng g p pipes/pipe-name
這裡我建立了一個名為test 的管道
在你執行上面的指令之後,就會在src 下為你建立一個pipes 的資料夾,裡面保存著你的自訂管道
然後再app 中Angular 會自動幫你引入這些管道,這樣你就能夠在全局每個地方使用自訂的管道。
接著看到在 pipes 資料夾下的管道,管道本質上就是個類,這裡使用裝飾器來為它取了個 tests 的名字。
在这个类里面我们需要去实现 PipeTransfrom 这个接口,也就是需要有 transform 这个方法,在这个方法中,第一个参数就是要放入管道的输入,第二个数据是我们向管道传递的参数,管道中把它放入了一个数组里面。
这个 transform 方法返回什么,我们的页面拿到的就是什么数据,我们先来做一个测试
transform(value: unknown, ...args: unknown[]): unknown { return 'tests'; } ... <div>{{'ASDasd' | tests }}</div>
返回一个固定的字符串,并且在页面中去使用它
可以看到返回的结果变成了 tests 字符串,这样我们就可以确定这个方法的返回值就是最终的输出。
接下来我们实现一个简单的字符串超出截取的管道:
transform(value: string, ...args: number[]): string { let defaultLength = 10; if((args[0] || defaultLength )< value.length){ return value.substr(0,args[0] || defaultLength)+'...' }else{ return value } } ... <div>{{'sssssssssssssssssssssssssssssss' | tests: 30 }}</div>
这样就能够对字符串进行一个截取并且在尾部添加 ...
总结
本文我们学习了 Angular 中管道的使用,简单的来说管道就是一个方法,可以将你的输入转化为特定的你需要的输出格式,Angular提供给了我们许多的内置管道,当内置管道不满足你的要求的时候,你还可以通过自定义管道来更加灵活的自定义输出格式
更多编程相关知识,请访问:编程视频!!
以上是一文聊聊Angular中的管道(PIPE)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務

本文展示了與許可證確保的後端的前端集成,並使用Next.js構建功能性Edtech SaaS應用程序。 前端獲取用戶權限以控制UI的可見性並確保API要求遵守角色庫

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境