千家信息网

Angular中如何实现自定义管道

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Angular中如何实现自定义管道的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、管道的作用方便我们在模板中对我们的数据进行格式化处理。二、内置
千家信息网最后更新 2026年11月03日Angular中如何实现自定义管道

这篇文章给大家分享的是有关Angular中如何实现自定义管道的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、管道的作用

方便我们在模板中对我们的数据进行格式化处理。

二、内置的常用管道

具体API参照官网查询使用

  • DatePipe: 格式化日期

  • UpperCasePipe: 文本转为全部大写

  • LowerCasePipe: 文本转为全部小写

  • TitleCasePipe: 文本转为标标题形式(如: hello world=>Hello World)

  • KeyValuePipe: 将对象转为键值对形式

  • JsonPipe: 转为JSON字符串(调试代码时还是很有用的)

三、Angular管道特点

  • 管道串联:将多个管道进行串联对一个数据进行多次处理得到最终的效果。

  • 管道优先级:主要提到管道优先级要大于三目表达式的优先级,需要管道对三目表达式的结果处理请用小括号包裹。

  • 纯/非纯管道:

    • 管道默认为纯管道,纯管道必须是纯函数。

    • 基础类型和引用对象的引用变更时纯管道执行。

    • 复合对象变更(更改数组元素)时非纯管道执行。

四、自定义管道三部曲

  • 自定义管道类并实现PipeTransform接口

  • 通过@Pipe装饰器将新建的类声明为Angular管道

  • 注入管道,如在app.module.ts的declarations数组中配合新建的管道类

五、自定义管道项目实践

背景:

  • 我们最近需要在IE11浏览器上跑我们的Angular项目,因为最开始没有考虑IE的兼容问题,使得其中最明显的一个问题得以暴露,我们的列表接口的时间列全都了。

  • 因为接口返回的时间格式大多是"yyyy-MM-dd hh:mm:ss",为了避免一个旧数据格式的不统一我们还会在模板中使用DatePipe管道来再次格式化数据,但是在IE浏览器环境new Date("2020-12-12 13:10:54")会提示无效的时间。

处理:

  • 通过搜索可以得到很多一致的处理方案就是将年月日中间的"-"进行替换为"/"。

  • 我考虑的解决方案就是通过自定义管道来对DatePipe扩展,在自定义管道中加入判断浏览器环境来对date字符串进行处理。

遗留:

  • 遗留问题就是全局替换的风险还是感觉有点高。。。有实用的方案请支招呀。

管道类说明

  • transform函数实现自PipeTransform接口,参数value为我们需要处理的数据,参数args为按什么样式来格式化。

  • 通过return将我们处理后的数据进行返回即可。

  • 管道通Angular的模块一样需要进行注册后使用。

import { DatePipe } from "@angular/common";import { Pipe, PipeTransform } from "@angular/core";@Pipe({ name: "gDate", pure: true })export class GDatePipe implements PipeTransform {  transform(value: any, ...args: any[]) {    let time = "";    if (this.isIE()) {      time = new DatePipe("en-US").transform(value.replace(/-/g, "/"), ...args);    } else {      time = new DatePipe("en-US").transform(value, ...args);    }    return time;  }  isIE(): boolean {    return "ActiveXObject" in window;  }}

感谢各位的阅读!关于"Angular中如何实现自定义管道"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

管道 处理 数据 格式 接口 优先级 对象 就是 文本 方案 时间 浏览器 问题 浏览 实用 内容 函数 参数 字符 字符串 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技工作委员会毛军 互联网科技官网 互联网电商科技 互联网科技公司税收优惠 互联网 科技创业 华中科技大学互联网 互联网科技公司做什么 卓越科技互联网 招聘 中正互联网科技招聘 字节跳动和互联网科技 互联网金融科技公司干啥的 全球顶尖互联网科技公司 厦门千工互联网科技有限公司 广州市恰铎互联网科技有限公司 国大互联网教育科技有限公司工作 科技类公司包括互联网吗 国大互联网教育科技有限公司薪资 江苏苏星互联网科技有限公司 半导体是互联网高科技吗 武汉亿视互联网科技有限公司 广州紫鲸互联网科技有限公司 广州百单互联网科技有限公司 国智互联网科技 卓越科技(互联网 ) 美国互联网黑科技 宁波青枫互联网科技有限公司 互联网校园科技培训 南博望互联网科技有限公司 工业互联网科技创业 山东蛋芒互联网科技有限公司
0