Advanced Angular Pipes -Custom Angular Pipes for Data Transformation

Suryaprakash
2 min readFeb 14, 2023

--

In Angular, pipes are used to transform data and display it in a user-friendly format. While Angular comes with a set of built-in pipes, it’s also possible to create custom pipes for specific data transformation needs.

To build a custom pipe, you can create a new class that implements the PipeTransform interface. The PipeTransform interface requires you to implement a single method called transform, which takes an input value and any number of optional parameters, and returns a transformed output.

Here’s an example of a custom pipe that transforms a string to uppercase:

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'toUpperCase'
})
export class ToUpperCasePipe implements PipeTransform {
transform(value: string): string {
return value.toUpperCase();
}
}

In this example, we define a new pipe called toUpperCase that takes a string input and returns the uppercase version of the string. The @Pipe decorator is used to define the name of the pipe.

To use this custom pipe in a component template, we can simply use the pipe name in the template with the input value as a parameter:

<p>{{ myString | toUpperCase }}</p>

In this example, the myString variable is passed through the toUpperCase custom pipe and displayed in the template as uppercase.

Custom pipes can be used for various data transformation needs such as formatting dates, converting units, and filtering arrays. They provide a flexible way to customize data display in Angular applications.

Here’s another example of a custom pipe that filters an array based on a search term:

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], term: string): any[] {
if (!term) {
return items;
}
term = term.toLowerCase();
return items.filter(item => item.name.toLowerCase().includes(term));
}
}

In this example, the filter pipe takes an array of items and a search term as input, and returns a filtered version of the array based on the search term. The includes method is used to check if the item's name contains the search term.

To use this custom pipe in a component template, we can pass an array and a search term as parameters to the pipe:

<ul>
<li *ngFor="let item of items | filter:searchTerm">{{ item.name }}</li>
</ul>

In this example, the items array is filtered based on the searchTerm variable and displayed in the template as a list of names.

Custom pipes are a powerful tool for data transformation in Angular applications. They allow developers to customize data display in a flexible and reusable way.

--

--

Suryaprakash
Suryaprakash

Written by Suryaprakash

Angular Architect @PlateauCorp. Expert in Angular and .Net Core.

No responses yet