Angular 2 自定义管道


Angular 2 还具有创建自定义管道的功能。定义自定义管道的一般方法如下。

import { Pipe, PipeTransform } from '@angular/core';  
@Pipe({name: 'Pipename'}) 

export class Pipeclass implements PipeTransform { 
    transform(parameters): returntype { }
} 

Where,

  • '管名' : 这是管道的名称。

  • 管道类 :这是分配给自定义管道的类的名称。

  • 转换 : 这是与管道配合使用的功能。

  • 参数 : 这是传递给管道的参数。

  • 返回类型 : 这是管道的返回类型。

让我们创建一个将 2 个数字相乘的自定义管道。然后我们将在我们的组件类中使用该管道。

步骤 1 :首先,创建一个名为multiplier.pipe.ts的文件。

Multiplier

步骤 2 : 将以下代码放在上面创建的文件中。

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
    }
} 

关于上述代码,需要注意以下几点。

  • 我们首先导入 Pipe 和 PipeTransform 模块。

  • 然后,我们正在创建一个名为“Multiplier”的管道。

  • 创建一个名为 MultiplierPipe 的类,该类实现 PipeTransform 模块。

  • 然后变换函数将接受值和多个参数并输出两个数字的乘积。

步骤 3 :在app.component.ts文件中,放置如下代码。

import { 
    Component
} from '@angular/core';  

@Component ({ 
    selector: 'my-app',
    template: '<p>Multiplier: {{2 | Multiplier: 10}}</p>'
}) 
export class AppComponent {  } 

注意 : 在我们的模板中,我们使用了我们新的自定义管道。

步骤 4 :确保以下代码放在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 {}

关于上面的代码,需要注意以下几点。

  • 我们需要确保包含我们的 MultiplierPipe 模块。

  • 我们还需要确保它包含在声明部分中。

保存所有代码更改并刷新浏览器后,你将获得以下输出。

Multiplier 输出