目錄
什麼是管道(PIPE)
內建管道
時間管道date
其他管道
自訂管道
总结
首頁 web前端 js教程 一文聊聊Angular中的管道(PIPE)

一文聊聊Angular中的管道(PIPE)

Jan 03, 2023 pm 07:49 PM
angular 管道

什麼是管道(PIPE)?這篇文章跟大家介紹一下Angular中的管道(PIPE),聊聊內建管道和自訂管道的方法,希望對大家有所幫助!

一文聊聊Angular中的管道(PIPE)

什麼是管道(PIPE)


PIPE,翻譯為管道。 Angular 管道是一種編寫可以在HTML元件中宣告的顯示值轉換的方法。 Angular 管道之前在 AngularJS 中被稱為過濾器,從 Angular 2開始就被稱為管道。管道將資料作為輸入並將其轉換為所需的輸出。 【相關教學推薦:angular教學程式設計教學

簡單來說,就是Angular Pipes 可以幫我們把我們的輸入,包括字串,整數和日期等等,按照我們的需要轉換為特定的格式並且在瀏覽器中顯示。透過插值表達式,我們可以定義管道並且在特定的情況下使用它,在 Angular 中提供給了我們許多不同類型的管道,當然,你甚至可以去自訂管道。

舉一個比較簡單的例子,日期的格式是多種多樣的,你可以透過管道,進行各種格式之間的轉化,例如把秒數轉化為時分秒。

一文聊聊Angular中的管道(PIPE)

內建管道


#上面提到了,Angular 中提供給了我們許多不同類型的管道,這些都是屬於Angular 的內建管道,至於內建管道都有什麼,要怎麼用,下面透過程式碼來示範一下。

時間管道date

我們新建一個Angular 項目,並且在頁面中新增一個new Date()

<div>{{data}}</div>
...
export class AppComponent {
  title = &#39;my-app&#39;;
  data = new Date()
}
登入後複製

頁面就會顯示目前的時間:

一文聊聊Angular中的管道(PIPE)

#那麼我們接下去就可以使用內建的管道來進行一個時間格式的轉化,管道的語法需要在變數後面加上| 符號,並且宣告管道

<div>{{data | date:&#39;yyyy-MM-dd&#39;}}</div>
登入後複製

這裡我們用到了date 這個管道,關於管道具體的參數詳情可以看一下官方文檔,裡面介紹了它所提供的所有給你轉化的時間格式。

Angular - DatePipe

https://angular.cn/api/common/DatePipe#description

在我們設定好管道之後,瀏覽器中的時間已經發生了變化了

一文聊聊Angular中的管道(PIPE)

其他管道

Angular也提供了其他管道,比如說改變人名幣格式的管道(currency):

一文聊聊Angular中的管道(PIPE)

Angular - CurrencyPipe

https://angular.cn/api/common/CurrencyPipe

還有將字串轉換為大寫的管道(uppercase):

<div>{{&#39;ASDasd&#39; | uppercase }}</div>
登入後複製

一文聊聊Angular中的管道(PIPE)

Angular - UpperCasePipe

#https: //angular.cn/api/common/UpperCasePipe

自訂管道


在上面我們介紹了幾種內建管道,那萬一要是內建管道都無法滿足我們開發的需求,那麼Angular 也給我們提供了自訂管道,你可以自己去定一個管道,定義要去如何轉換輸入。

我們可以透過Angular 提供給我們的命令列去快速產生一個管道:

ng g p pipes/pipe-name
登入後複製

這裡我建立了一個名為test 的管道

一文聊聊Angular中的管道(PIPE)

在你執行上面的指令之後,就會在src 下為你建立一個pipes 的資料夾,裡面保存著你的自訂管道

一文聊聊Angular中的管道(PIPE)

然後再app 中Angular 會自動幫你引入這些管道,這樣你就能夠在全局每個地方使用自訂的管道。

一文聊聊Angular中的管道(PIPE)

接著看到在 pipes 資料夾下的管道,管道本質上就是個類,這裡使用裝飾器來為它取了個 tests 的名字。

在这个类里面我们需要去实现 PipeTransfrom 这个接口,也就是需要有 transform 这个方法,在这个方法中,第一个参数就是要放入管道的输入,第二个数据是我们向管道传递的参数,管道中把它放入了一个数组里面。

这个 transform 方法返回什么,我们的页面拿到的就是什么数据,我们先来做一个测试

  transform(value: unknown, ...args: unknown[]): unknown {
    return &#39;tests&#39;;
  }
  ...
  <div>{{&#39;ASDasd&#39; | tests }}</div>
登入後複製

返回一个固定的字符串,并且在页面中去使用它

一文聊聊Angular中的管道(PIPE)

可以看到返回的结果变成了 tests 字符串,这样我们就可以确定这个方法的返回值就是最终的输出。

接下来我们实现一个简单的字符串超出截取的管道:

  transform(value: string, ...args: number[]): string {
    let defaultLength = 10;
    if((args[0] || defaultLength )< value.length){
      return value.substr(0,args[0] || defaultLength)+&#39;...&#39;
    }else{
      return value
    }
  }
  ...
  <div>{{&#39;sssssssssssssssssssssssssssssss&#39; | tests: 30 }}</div>
登入後複製

这样就能够对字符串进行一个截取并且在尾部添加 ...

一文聊聊Angular中的管道(PIPE)

总结


本文我们学习了 Angular 中管道的使用,简单的来说管道就是一个方法,可以将你的输入转化为特定的你需要的输出格式,Angular提供给了我们许多的内置管道,当内置管道不满足你的要求的时候,你还可以通过自定义管道来更加灵活的自定义输出格式

更多编程相关知识,请访问:编程视频!!

以上是一文聊聊Angular中的管道(PIPE)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在Ubuntu 24.04上安裝Angular 如何在Ubuntu 24.04上安裝Angular Mar 23, 2024 pm 12:20 PM

Angular.js是一種可自由存取的JavaScript平台,用於建立動態應用程式。它允許您透過擴展HTML的語法作為模板語言,以快速、清晰地表示應用程式的各個方面。 Angular.js提供了一系列工具,可協助您編寫、更新和測試程式碼。此外,它還提供了許多功能,如路由和表單管理。本指南將討論在Ubuntu24上安裝Angular的方法。首先,您需要安裝Node.js。 Node.js是一個基於ChromeV8引擎的JavaScript運行環境,可讓您在伺服器端執行JavaScript程式碼。要在Ub

一文探究Angular中的服務端渲染(SSR) 一文探究Angular中的服務端渲染(SSR) Dec 27, 2022 pm 07:24 PM

你知道 Angular Universal 嗎?可以幫助網站提供更好的 SEO 支援哦!

淺析angular中怎麼使用monaco-editor 淺析angular中怎麼使用monaco-editor Oct 17, 2022 pm 08:04 PM

angular中怎麼使用monaco-editor?以下這篇文章記錄下最近的一次業務中用到的 m​​onaco-editor 在 angular 中的使用,希望對大家有幫助!

如何使用PHP和Angular進行前端開發 如何使用PHP和Angular進行前端開發 May 11, 2023 pm 04:04 PM

隨著網路的快速發展,前端開發技術也不斷改進與迭代。 PHP和Angular是兩種廣泛應用於前端開發的技術。 PHP是一種伺服器端腳本語言,可以處理表單、產生動態頁面和管理存取權限等任務。而Angular是一種JavaScript的框架,可以用來開發單一頁面應用程式和建構元件化的網頁應用程式。本篇文章將介紹如何使用PHP和Angular進行前端開發,以及如何將它們

如何在 Golang 中使用管道實作文件讀寫? 如何在 Golang 中使用管道實作文件讀寫? Jun 04, 2024 am 10:22 AM

透過管道進行檔案讀寫:建立一個管道從檔案讀取資料並透過管道傳遞從管道中接收資料並處理將處理後的資料寫入檔案使用goroutine並發執行這些操作以提高效能

淺析Angular中的獨立組件,看看怎麼使用 淺析Angular中的獨立組件,看看怎麼使用 Jun 23, 2022 pm 03:49 PM

這篇文章帶大家了解Angular中的獨立元件,看看怎麼在Angular中建立一個獨立元件,怎麼在獨立元件中導入已有的模組,希望對大家有幫助!

使用Angular和Node進行基於令牌的身份驗證 使用Angular和Node進行基於令牌的身份驗證 Sep 01, 2023 pm 02:01 PM

身份驗證是任何網路應用程式中最重要的部分之一。本教程討論基於令牌的身份驗證系統以及它們與傳統登入系統的差異。在本教程結束時,您將看到一個用Angular和Node.js編寫的完整工作演示。傳統身份驗證系統在繼續基於令牌的身份驗證系統之前,讓我們先來看看傳統的身份驗證系統。使用者在登入表單中提供使用者名稱和密碼,然後點擊登入。發出請求後,透過查詢資料庫在後端驗證使用者。如果請求有效,則使用從資料庫中獲取的使用者資訊建立會話,然後在回應頭中傳回會話訊息,以便將會話ID儲存在瀏覽器中。提供用於存取應用程式中受

專案過大怎麼辦?如何合理拆分Angular項目? 專案過大怎麼辦?如何合理拆分Angular項目? Jul 26, 2022 pm 07:18 PM

Angular專案過大,怎麼合理拆分它?以下這篇文章跟大家介紹一下合理分割Angular專案的方法,希望對大家有幫助!

See all articles