ng-pipes

Angular Pipes


Motivation

Birthday: {{ user().dateOfBirth }}
Weight[kg]: {{ user().weight }}
Weight[lbs]: {{ user().weight * 2.2046226218 }}

Birthday: Mon Jul 23 2003 00:00:00 GMT+0200
Weight[kg]: 80
Weight[lbs]: 176.369809744
🤔

💡 f'{something}' | String.format()


Pipes

{{ value | pipe }} => pipe(value)
  • performanter als Funktionen
  • gecached

Stringmanipulation

text = signal('Pipes')
{{ text | uppercase }} => PIPES
{{ text | lowercase }} => pipes
{{ value | slice:from:to }} => value[from:to]

{{ text | slice:1:3 }} => ip

date

{{ value | date:format:timezone:locale }}
{{ now() }}     Mon Sep 01 2025 13:17:57 GMT+0200
{{ now() | date }}  Sep 1, 2025
{{ now() | date:'dd.MM.yyy HH:mm:ss' }}  01.09.2025 13:17:57
{{ now() | date:'yy/d/M' }}  25/1/9


import { registerLocaleData } from '@angular/common';
import localeDe from '@angular/common/locales/de';

registerLocaleData(localeDe);

{{ now() | date:'EEEE, dd. MMMM':undefined: 'de' }}  
    Montag, 01. September

number

{{ value | number:digitsInfo:locale }}
digitsInfo: 'minIntegerDigits.minFractionDigits-maxFractionDigits'
{{ pi() }}  3.1415926
{{ pi() | number }}  3.142
{{ pi() | number:'1.2-2' }}  3.14
{{ pi() | number:'1.0-2' }}  3.14
{{ pi() | number:'2.2-2':'en' }}  03.14
{{ pi() | number:'2.2-2':'de' }}  03,14

currency

{{ value | currency:currencyCode:display:digitsInfo:locale }}
{{ sum() }} 42.7
{{ sum() | currency }} $42.70
{{ sum() | currency:'EUR' }} €42.70
{{ sum() | currency:'EUR':'symbol':'1.2-2':'de-at' }} 42,70 €

json

{{ value | json }}
{{ person() }}  [object Object]
{{ person() | json }}  {'name': 'Dani', 'age': 16}

Debugging 👍


Custom Pipes

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

@Pipe({
    name: 'kebabCase',
})
export class KebabCasePipe implements PipeTransform {
    transform(value: string, separator = '-'): string {
        return value.toLowerCase().replace(/ /g, separator);
    }
}
{{ lorem() | kebabCase }}  lorem-ipsum-dolor-sit-amet
{{ lorem() | kebabCase:'_' }}  lorem_ipsum_dolor_sit_amet