Angular自定义管道

1、使用ng g pipe pipe/mySex创建了一个名叫mySex的管道文件

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

@Pipe({
  name: 'mySex'
})
export class MySexPipe implements PipeTransform {
  //管道内默认的处理函数,在模板中使用默认调用transform函数,传入旧值,return过滤后的值
  transform(value: unknown): unknown {
    if (value==1) {
      return '男'
    }else if (value==2) {
      return '女'
    }else{
      return '太监'
    }
  }

}


2、在页面中使用

// 在页面中使用的是使用管道装饰器声明的管道名
{{'1'|mySex}}//通过管道过滤为男
{{'2'|mySex}}//通过管道过滤为女
{{'3'|mySex}}//通过管道过滤为太监

3、管道定义时也可以传入另外的参数

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

@Pipe({
  name: 'mySex'
})
export class MySexPipe implements PipeTransform {
  //管道内默认的处理函数,在模板中使用默认调用transform函数,传入旧值,return过滤后的值
  transform(value: unknown,lang='zh'): unknown {
    if(lang=='zh'){
        if (value==1) {
          return '男'
        }else if (value==2) {
          return '女'
        }else{
          return '太监'
        }
      }
     }else if(lang=='en'){
       //do something    
     }
}
//在模板上调用时使用  
{{'1'|mySex:'en'}}//en为传参

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容