Angular 2 - tubos personalizados
O Angular 2 também possui a facilidade de criar tubos personalizados. A maneira geral de definir um tubo personalizado é a seguinte.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'Pipename'})
export class Pipeclass implements PipeTransform {
transform(parameters): returntype { }
}
Onde,
'Pipename' - Este é o nome do tubo.
Pipeclass - Este é o nome da classe atribuída ao canal personalizado.
Transform - Esta é a função para trabalhar com o tubo.
Parameters - Estes são os parâmetros que são passados para o tubo.
Returntype - Este é o tipo de retorno do tubo.
Vamos criar um tubo personalizado que multiplica 2 números. Em seguida, usaremos esse tubo em nossa classe de componente.
Step 1 - Primeiro, crie um arquivo chamado multiplier.pipe.ts.
Step 2 - Coloque o seguinte código no arquivo criado acima.
import {
Pipe,
PipeTransform
} from '@angular/core';
@Pipe ({
name: 'Multiplier'
})
export class MultiplierPipe implements PipeTransform {
transform(value: number, multiply: string): number {
let mul = parseFloat(multiply);
return mul * value
}
}
Os seguintes pontos precisam ser observados sobre o código acima.
Estamos primeiro importando os módulos Pipe e PipeTransform.
Então, estamos criando um Pipe com o nome 'Multiplicador'.
Criação de uma classe chamada MultiplierPipe que implementa o módulo PipeTransform.
A função de transformação então pegará o valor e parâmetro múltiplo e produzirá a multiplicação de ambos os números.
Step 3 - No arquivo app.component.ts, coloque o seguinte código.
import {
Component
} from '@angular/core';
@Component ({
selector: 'my-app',
template: '<p>Multiplier: {{2 | Multiplier: 10}}</p>'
})
export class AppComponent { }
Note - Em nosso modelo, usamos nosso novo tubo personalizado.
Step 4 - Certifique-se de que o código a seguir seja colocado no arquivo app.module.ts.
import {
NgModule
} from '@angular/core';
import {
BrowserModule
} from '@angular/platform-browser';
import {
AppComponent
} from './app.component';
import {
MultiplierPipe
} from './multiplier.pipe'
@NgModule ({
imports: [BrowserModule],
declarations: [AppComponent, MultiplierPipe],
bootstrap: [AppComponent]
})
export class AppModule {}
As coisas a seguir precisam ser observadas sobre o código acima.
Precisamos garantir a inclusão de nosso módulo MultiplierPipe.
Também precisamos garantir que ele seja incluído na seção de declarações.
Depois de salvar todas as alterações de código e atualizar o navegador, você obterá a seguinte saída.