Angular
Pipes
Recherche…
Introduction
Les tuyaux sont très similaires aux filtres dans AngularJS en ce sens qu'ils permettent de transformer les données dans un format spécifié | est utilisé pour appliquer des tuyaux dans Angular.
Tuyaux personnalisés
my.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'myPipe'})
export class MyPipe implements PipeTransform {
transform(value:any, args?: any):string {
let transformedValue = value; // implement your transformation logic here
return transformedValue;
}
}
my.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `{{ value | myPipe }}`
})
export class MyComponent {
public value:any;
}
my.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyComponent } from './my.component';
import { MyPipe } from './my.pipe';
@NgModule({
imports: [
BrowserModule,
],
declarations: [
MyComponent,
MyPipe
],
})
export class MyModule { }
Plusieurs pipes personnalisées
Avoir des tuyaux différents est un cas très courant, où chaque tuyau fait une chose différente. L'ajout de chaque canal à chaque composant peut devenir un code répétitif.
Il est possible de regrouper tous les canaux fréquemment utilisés dans un Module et d'importer ce nouveau module dans n'importe quel composant ayant besoin des tubes.
lignes de rupture.ts
import { Pipe } from '@angular/core';
/**
* pipe to convert the \r\n into <br />
*/
@Pipe({ name: 'br' })
export class BreakLine {
transform(value: string): string {
return value == undefined ? value :
value.replace(new RegExp('\r\n', 'g'), '<br />')
.replace(new RegExp('\n', 'g'), '<br />');
}
}
majuscules.ts
import { Pipe } from '@angular/core';
/**
* pipe to uppercase a string
*/
@Pipe({ name: 'upper' })
export class Uppercase{
transform(value: string): string {
return value == undefined ? value : value.toUpperCase( );
}
}
pipes.module.ts
import { NgModule } from '@angular/core';
import { BreakLine } from './breakLine';
import { Uppercase} from './uppercase';
@NgModule({
declarations: [
BreakLine,
Uppercase
],
imports: [
],
exports: [
BreakLine,
Uppercase
]
,
})
export class PipesModule {}
my.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: `{{ value | upper | br}}`
})
export class MyComponent {
public value: string;
}
my.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyComponent } from './my.component';
import { PipesModule} from './pipes.module';
@NgModule({
imports: [
BrowserModule,
PipesModule,
],
declarations: [
MyComponent,
],
})
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow