Introduction and usage of Angular pipeline PIPE

Introduction and usage of Angular pipeline PIPE

Preface

PIPE, translated as pipeline. Angular pipes are a way to write transformations of display values ​​that can be declared in HTML components. Angular pipes were previously called filters in AngularJS and are now called pipes since Angular 2. A pipeline takes data as input and transforms it into the desired output.

Angular Pipes takes integers, strings, arrays, and dates as input separated by | and then converts them into the required format and displays them in the browser. In interpolation expressions, you can define pipes and use them as appropriate. There are many types of pipes that you can use in an Angular application.

Built-in pipeline

  • String -> String
    • UpperCasePipe
    • LowerCasePipe
    • TitleCasePipe
  • Number -> String
    • DecimalPipe
    • PercentPipe
    • CurrencyPipe
  • Object -> String
    • JsonPipe
    • DatePipe
  • Tools
    • SlicePipe
    • AsyncPipe
    • I18nPluralPipe
    • I18nSelectPipe

How to use

Uppercase conversion

<div>
  <p ngNonBindable>{{ 'Angular' | uppercase }}</p>
  <p>{{ 'Angular' | uppercase }}</p> <!-- Output: ANGULAR -->
</div>

Date formatting

<div>
  <p ngNonBindable>{{ today | date: 'shortTime' }}</p>
  <p>{{ today | date: 'shortTime' }}</p> <!-- Output: Based on the current time, output format: 10:40 AM -->
</div>

Numeric formatting

<div>
  <p ngNonBindable>{{ 3.14159265 | number: '1.4-4' }}</p>
  <p>{{ 3.14159265 | number: '1.4-4' }}</p> <!-- Output: 3.1416 -->
</div>

JavaScript Object Serialization

<div>
  <p ngNonBindable>{{ { name: 'semlinker' } | json }}</p>
  <p>{{ { name: 'semlinker' } | json }}</p> <!-- Output: { "name": "semlinker" } -->
</div>

Pipeline parameters

A pipeline can accept any number of parameters by appending : and the parameter value after the pipeline name. For example, number: '1.4-4'. If you need to pass multiple parameters, separate them with colons. The specific examples are as follows:

<div>
  <p ngNonBindable>{{ 'semlinker' | slice:0:3 }}</p>
  <p>{{ 'semlinker' | slice:0:3 }}</p> <!-- Output: sem -->
</div>

Pipeline Chain

<div>
  <p ngNonBindable>{{ 'semlinker' | slice:0:3 | uppercase }}</p>
  <p>{{ 'semlinker' | slice:0:3 | uppercase }}</p>
</div>

Custom pipeline

The following uses the pipeline used in previous projects as an example to explain the steps of customizing the pipeline:

  • Use the @Pipe decorator to define the metadata information of the Pipe, such as the name of the Pipe - that is, the name attribute
  • Implement the transform method defined in the PipeTransform interface

definition

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({ name: "formatError" })
export class FormatErrorPipe implements PipeTransform {
    constructor() {}

    transform(value: any, module: string) {
        if (value.code) {
            return value.desc;
        } else {
            return value.message;
        }
    }
}

use

<div *ngIf="errorMessage">
    <div class="message-box error mb-16" [@animate]="{value:'*',params:{opacity:'0',duration:'200ms'}}">
        {{errorMessage.error | formatError:"auth"}}
    </div>
</div>

Summarize

This is the end of this article about Angular pipe PIPE. For more relevant Angular pipe PIPE content, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • How to use Angular2's pipe
  • Angular2 pipeline Pipe and custom pipeline format data usage example analysis

<<:  When adding a Windows 2008 server subdomain to a parent domain, an error message appears: the domain already exists

>>:  Basic JSON Operation Guide in MySQL 5.7

Recommend

About deploying a web project to Alibaba Cloud Server (5 steps to do it)

1. First log in to the Alibaba Cloud website to r...

11 common CSS tips and experience collection

1. How do I remove the blank space of a few pixels...

How to implement a single file component in JS

Table of contents Overview Single file components...

Install and configure MySQL 5.7 under CentOS 7

This article tests the environment: CentOS 7 64-b...

Use render function to encapsulate highly scalable components

need: In background management, there are often d...

Practical experience of implementing nginx to forward requests based on URL

Preface Because this is a distributed file system...

Quickly solve the problem of slow and stuck opening of input[type=file]

Why is it that when the input tag type is file an...

MySQL trigger syntax and application examples

This article uses examples to illustrate the synt...

MySQL index cardinality concept and usage examples

This article uses examples to explain the concept...

CSS sample code with search navigation bar

This article shows you how to use CSS to create a...

How to implement blank space in Taobao with CSS3

Make a blank space for Taobao: When you shrink th...

Installation and use tutorial of Elasticsearch tool cerebro

Cerebro is an evolution of the Elasticsearch Kopf...

Mysql aggregate function nested use operation

Purpose: Nested use of MySQL aggregate functions ...

Detailed explanation of lazy loading and preloading of webpack

Table of contents Normal loading Lazy Loading Pre...