Angular
pipes
Zoeken…
Invoering
Pijpen lijken erg op filters in AngularJS, omdat ze allebei helpen om de gegevens in een gespecificeerd formaat te transformeren | wordt gebruikt om pijpen in hoekig aan te brengen.
Aangepaste buizen
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 { }
Meerdere aangepaste pijpen
Het hebben van verschillende pijpen is een veel voorkomend geval, waarbij elke pijp een ander ding doet. Het toevoegen van elke pijp aan elke component kan een repetitieve code worden.
Het is mogelijk om alle veelgebruikte pijpen in één Module te bundelen en die nieuwe module in elk onderdeel dat de pijpen nodig heeft te importeren.
breaklines.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 />');
}
}
uppercase.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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow