Creating a Reusable Truncate String Pipe in Angular

Abhinav Akhil
3 min readJan 27, 2024

--

Angular, a robust and powerful front-end framework, provides developers with a toolkit for building dynamic and feature-rich web applications. One of the many utilities Angular offers is the ability to create custom pipes, allowing developers to transform and format data effortlessly. In this article, we’ll explore the process of crafting a reusable “truncate” string pipe, a handy tool for limiting the length of strings in your Angular applications.

Understanding the Need for a Truncate Pipe

In many web applications, there’s a common requirement to display a snippet or summary of text rather than the entire content. Whether it’s a product description, a blog post, or user comments, truncating long strings is a crucial aspect of creating a clean and user-friendly interface. Instead of handling this logic within component templates, we can encapsulate it in a reusable pipe, promoting code modularity and maintainability.

Step 1: Creating the Pipe

Let’s start by generating a new Angular pipe using the Angular CLI:

ng generate pipe truncate

This command will generate a new file named truncate.pipe.ts in your project.

Step 2: Implementing the Truncate Pipe Logic

Open the truncate.pipe.ts file, and you'll find a basic template for the pipe. Replace it with the following code:

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

@Pipe({
name: 'truncate'
})
export class TruncatePipe implements PipeTransform {
transform(value: string, limit: number = 100, ellipsis: string = '...'): string {
if (value.length <= limit) {
return value;
}
return value.substring(0, limit) + ellipsis;
}
}

This code defines a TruncatePipe class that implements the PipeTransform interface. The transform method takes three parameters: the input value (a string), the limit (the maximum length of the truncated string), and an optional ellipsis (the string to append when truncating).

Step 3: Using the Truncate Pipe in Templates

Now that we have our custom truncate pipe, let’s use it in a component template:

<!-- app.component.html -->
<div>
<h2>{{ title }}</h2>
<p>{{ content | truncate: 150 }}</p>
</div>

In this example, the truncate pipe is applied to the content property, limiting the displayed text to 150 characters.

Step 4: Making the Pipe Reusable

To enhance the reusability of our custom pipe, consider adding it to a shared module. Create a new file named shared.module.ts (if you don't already have one) and include the following:

import { NgModule } from '@angular/core';
import { TruncatePipe } from './truncate.pipe';

@NgModule({
declarations: [TruncatePipe],
exports: [TruncatePipe]
})
export class SharedModule { }

Now, import and include the SharedModule in any module where you want to use the truncate pipe.

Conclusion

Creating a reusable truncate string pipe in Angular empowers developers to efficiently manage and format text within their applications. By encapsulating this logic in a custom pipe, you enhance code modularity, promote reusability, and create a more maintainable codebase. As you explore Angular’s capabilities, custom pipes serve as valuable tools for transforming and presenting data in a way that aligns with your application’s requirements.

--

--

Abhinav Akhil
Abhinav Akhil

Written by Abhinav Akhil

I create software, that tell stories.

No responses yet