Angular2踩坑之自定义Pipe管道

Angular中的管道(Pipe) Angular中的管道(Pipes)是一种强大的工具,用于处理和转换数据,并将其呈现在视图中。这些管道可以执行各种任务,如排序、格式化和过滤数据。它们提供了一种方便的方式来在HTML模板中转换数据,使得数据的展示更符合用户的需要。管道的基本用法是,通过声明一个管道类来定义一个管道。在管道类中,通常会有一个transform方法,该方法负责接收输入数据,并将其转换为所需的输出格式。然后,在模板中,可以使用管道操作符将管道应用于数据,从而将数据转换为所需的格式。 阅读详情

从15年底接触的AngularJS,当时的感觉是除了难学还是难学,跟后来的React和Vue相比,到现在AngularJS1.x已经没有什么优势了,谷歌去年推出了Angular2(习惯上从2.0版本开始就不再加"JS"),今年3月推出了4.0版本,于是我开始爬坑之旅。

Pipe,管道,如果写过Gulp的朋友肯定非常熟悉,就是工厂的生产线加工模式,我只负责实现某个模块,做完就扔给下一个人,绝不越俎代庖。其实Pipe就是Angularjs中的过滤器,如果你对Angularjs比较熟悉,这些概念都不会陌生。

Angular自定义了8个管道,分别是DatePipe,JsonPipe,UpperCasePipe,LowerCasePipe,DecimalPipe,CurrencyPipe,PercentPipe,SlicePipe,

Pipe后面如果有参数,用":"间隔,不同的Pipe,有不同的格式化方式,我就不多说了,有兴趣的朋友可以参看文档。

自定义管道中,最重要的两点是引入Pipe对象和申明管道名称。

import {Pipe,PipeTransform} from "@angular/core";
@Pipe({
    "name":"upperCase",
    "pure":false
})
export class UpperCasePipe implements PipeTransform{


        transform(val:string):string
        {
            return val.toUpperCase();
        }

}
最关键的是实现PipeTransform中的transform方法,

然后,在主模块中声明它的存在,如下:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { BtnComponent } from "./app.btn";
import { UpperCasePipe } from "./pipe/UpperCase";

@NgModule({
  declarations: [
    AppComponent,
    BtnComponent,
    UpperCasePipe
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule
        
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { 

}
在主模块中声明以后,任何地方就都可以使用了,

如果需要使用我们的自定义Pipe,方法如下:

<btn [msg]="'yangxu'|upperCase" (outer)="receive($event)"></btn>
最后提一下,纯管道和非纯管道有一定的区别,由于TypeScript是强类型语言,纯管道要求是基本数据类型(String,Number,Boolean,Array,Function,Object等),

假如我们用纯管道和非纯管道来处理一个日期类型的时间和字符串类型的时间,那么当我们在一定的时候修改以后,字符串的会应用变化,而日期类型不会,因为日期类型引用的还是原来的内存地址,并没有发生变化,而修改字符串就会导致引用新的内存地址。





Angular Pipe | async 管道 | 自定义管道 管道的概念 管道是一些简单的函数,可以在模板表达是中用来接受输入值,并返回一个转换后的值。 用处:用于对字符串、货币、日期和其他显示数据进行准换和格式化 常见的内置管道: DatePipe:根据本地环境中的规则格式化日期值 UpperCasePipe:转为大写 LowerCasePipe:转为小写 CurrencyPipe:数字转为货币字符串,根据本地环境中的规则进行格式化 DecimalPipe:把数字转为带小数点的字符串,根据本地环境中的规则进行格式化 PercentPipe:把数字转换为百分比字符 阅读详情

相关推荐

Angular中使用管道

创建管道文件如下路径:src\app\main\commonService\pipes\second-to-year-month-days.pipe.ts@Pipe({})if (!

weixin_39565734的博客 1761

Angular 常用管道(pipe) 以及自定义管道

Angular 常用管道(pipe) 以及自定义管道

751

angular 管道 和自定义管道示例

angular 管道 和自定义管道示例 管道可以将数据格式化显示,而不改变源数据 一、angular管道 首先,进行Angular环境的搭建和项目创建 ctrl + c 结束服务 1、新建模块 ng g component components/home 如图: 2、将home模块添加到主页 app.component.html,页面代码如下,没有看错,只有一行 <app-home></app-home> 3、编辑home.component.html <h1>管道

dave的技术成长之路 1436

angular引用管道pipe时踩的坑(Type UmberUnitPipe is part of the declarations of 2 modules:)

我的管道pipe都是统一引入到模块pipeModule中,再在app.module.ts中import这个模块的 umberUnit.pipe.ts import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser' @Pipe({ n...

qq_40637612的博客 1448

同花顺PC端逆向解析:Hook注入与加密破解实战指南

在Windows客户端数据采集场景中,当常规HTTP爬虫失效时,内存级逆向分析成为获取实时行情数据的关键路径。其核心涉及进程注入、运行时解密、反调试绕过等底层技术,本质是理解PE加载机制、函数调用约定与内存保护策略的协同过程。同花顺作为典型加固客户端,采用ASPack加壳+自研解密+多线程校验三重防护,迫使开发者转向APC注入、动态密钥提取与XXTEA算法复刻等高阶手段。本文聚焦于DLL注入选型依据、解密函数定位方法及二进制Blob结构化解析,最终实现从内存读取到Pandas DataFrame的端到端数据

weixin_32234493的博客 1208

树莓派4B系统安装及SSH远程控制(简单易操作)

​自从2022年4月树莓派官网更新了RaspberryPiImager版本v1.7.2后,便不再支持自行建立ssh文件,并用默认用户名pi和密码raspberry的方式进行远程控制(亲测不行,输密码时一直access denied)。但是该版本软件提供了烧录系统前设置ssh用户及密码功能。本文记录了系统安装和SSH远程操作步骤。........................

机械人的代码路 5791

一步一步实现自定义angular pipe

angular尽管内置许多的pipe,比如date、async、currency等。尽管拿来即用,但是远不能满足于业务的一些需求,所以需要实现自定义的一些pipe。 自定义pipe(AngularJS中的filter概念)就是允许让我们去创建一个纯函数接收一些参数实际上去做一些形式上的转换。下面让我们做一些进一步的了解。 angular的自定义pipe 最基础的自定义pipe就是接收一个v...

在路上 2221

RSA 2048/4096 签名校验算法

RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能...

qq_38769551的博客 9502

angular2--pipe管道使用

angular2–pipe管道使用Angular2 有一些内置管道:五种内置管道 Pipe Usage Example DatePipe date {{ dateObj | date }} // output is 'Jun 15, 2015' UpperCasePipe uppercase {{ value | uppercase }} // output is

FreeMing-imduingui0 5393

PacketTacer烟雾传感器读数为0的解决方法

PacketTacer烟雾传感器读数为0的解决方法

ChloeMax_的博客 1905

【计算机图形学】Pov-Ray画的垃圾小车

效果: 代码: #include "colors.inc" #include "metals.inc" #include "glass.inc" //相机 //这个位置车子刚好落在草地上了 camera { location direction z*1.5 right x*image_width/image_height look_at

lishichengyan的博客 1749

Angular 2的管道Pipe

Angular2 管道 Pipe

一路斜阳的专栏 3181

SAP中关于预测需求的重要载体:计划独立需求

预测,就是为了调节客户需求的波动、不平衡,使企业的生产计划、物料计划尽量平稳、有序的必备工具。计划独立需求,Planned Independent Requirement(PIR)是SAP系统中最常见的预测需求。

saplakes的博客 1879

Angular--Pipe管道理解及用法及自定义管道

1.什么是Pipe? 就是管道,简单来说,管道的作用就是传输。并且不同的管道具有不同的作用。(其实就是处理数据) 2.pipe用法 {{ 输入数据 | 管道 : 管道参数}} (其中‘|’是管道操作符) 3.Angular自带的pipe函数 管道 功能 DatePipe 日期管道,格式化日期 JsonPipe 将输入数据对象经过JSO...

Delicia_Lani的博客 1971

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

孤寒者的博客 1万+

2021.07.05【R语言】丨预测lncRNA并绘制venn图

目录摘要环境与方法依赖工具预测工具绘制工具使用命令预测lncRNA统计noncoding_ID绘制Venn图结果展示总结 摘要 接到一个单样品测lncRNA数据的项目,正好拿来练练手,梳理一下lncRNA流程。这里记录预测lncRNA并生成venn图的过程 环境与方法 R version 3.6.3 (2020-02-29) 依赖工具 预测工具 CPC2 CNCI Pfam CPAT 绘制工具 R:VennDiagram 使用命令 预测lncRNA CPC2 #更换env conda activate py

2035

angular6 自定义管道pipe(过滤器)

文章参考 管道 使用命令创建 ng generate pipe strLength 生成 str-length.pipe.ts文件,文件后缀名前面需要指明组件类型 指令内容 引入 Pipe 和 PipeTransform 从 @angular/core模块中 str-length.pipe.ts 文件 import {Pipe, PipeTransform } from '@angular/...

黄彪博客 6499

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Angular 2 的Pipe(管道)

Angular 2 中 Pipe(管道) 与 Angular 1.x 中的 filter(过滤器) 的作用的是一样的。它们都是用来对输入的数据进行处理,如大小写转换、数值和日期格式化等。Angular 2 内建管道及分类String -&gt; StringUpperCasePipeLowerCasePipeTitleCasePipeNumber -&gt; StringDecimalPipePe...

前端栈开发 588

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Angular8管道使用 Pipe

这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录

lvxinaidou的博客 2016

Angular—管道pipe

目录 一、概述 二、常用内置管道 三、自定义管道 一、概述 管道就是我们可以在html模板中调用的一些方法。管道分为两类,其一Angular内置管道,其二自定义管道。内置管道中最常用的是日期格式化方法。html模板中通过符号 | 调用管道。 二、常用内置管道 日期格式化 public today: any = new Date(); <p>{{today |...

雷雨天的雷胖子 658

Angular交互核心02,管道 Pipe 入门:玩转内置管道与自定义管道

本文详细介绍了Angular中的管道(Pipe)功能。管道是用于在模板中转换数据的纯函数,通过|符号调用,具有复用性强、代码简洁的特点。重点讲解了两种常用内置管道:UpperCasePipe(文本转大写)和DatePipe(日期格式化),并详细说明了DatePipe的各种格式参数。文章还逐步演示了如何创建自定义管道,包括手机号脱敏管道和金额格式化管道的实现方法,以及如何处理多参数情况。最后强调了纯管道与非纯管道的区别及性能注意事项。

码路同行 967

Angular管道的使用

angular中的管道(pipe) 以及自定义管道-适用于angular4 angualr5 angualr6 angular7 angular中的管道(pipe)是用来对输入的数据进行处理,如大小写转换、数值和日期格式化等。 常用的管道(pipe)有 1.大小写转换 {{str | uppercase}} //转换成大写 {{str | lowercase}} //转换成小写 2. 日期格...

liusuxilinyue 2895

Angular7 自定义管道pipe

首先介绍一下ng里的管道: angular的自定义pipe 最基础的自定义pipe就是接收一个value,然后返回另外一个value。参数的形式不限,可以是string、number、object等任何类型。 接下来会做一个简单的自定义pipe的实例,比如我们在显示文件大小的时候,我们看到文件单位为byte需要转化为MB,这样相对来说可能会更好理解及清晰明了。在此之前,我们先了解下如何使用pipe。 当前例子的场景:后端返回我0,1,2对应的页面应该展示对应的文字,因为返回的是表格数据,并且字段有3个,

JiAyInNnNnN123的博客 573

Angular中的管道(pipe)如何使用?

在这个示例中,我们创建了一个名为 CapitalizePipe 的管道,它实现了 PipeTransform 接口,并定义了 transform 方法来将字符串的首字母转换为大写。在模板中使用管道: 一旦你创建了自定义管道,你就可以在模板中使用它来转换数据。在上面的例子中,date是管道的名称,'fullDate’是管道的参数,用于指定日期格式。这里的 capitalize 是我们在管道上定义的名字,它会调用管道的 transform 方法,将 name 的值传递给管道进行处理。

金木AI 1994

angular2+管道pipe

一.什么是Pipe? 就是管道,简单来说,管道的作用就是传输。并且不同的管道具有不同的作用。(其实就是处理数据)二.pipe用法 {{ 输入数据 | 管道 : 管道参数}} (其中‘|’是管道操作符)三.Angular自带的pipe函数管道功能DatePipe日期管道,格式化日期JsonPipe将输入数据对象经过JSON.stringify()方法转...

测试 531
上一篇: 解决nodejs不支持async和await关键字的问题
下一篇: JavaScript之EcmaScript5中geter和setter
遛狗的代码
博客等级 码龄11年 10粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值