Angular管道PIPE的介绍与使用方法

前言

PIPE,翻译为管道。Angular 管道是编写可以在HTML组件中声明的显示值转换的方法。Angular 管道之前在 AngularJS 中被称为过滤器,从 Angular 2开始就被称为管道。管道将数据作为输入并将其转换为所需的输出。

Angular Pipes 将整数、字符串、数组和日期作为输入,用| 分隔,然后根据需要转换成格式,并在浏览器中显示出来。在插值表达式中,可以定义管道并根据情况使用它,在 Angular 应用程序中可以使用许多类型的管道。

内建管道

  • String -> String

    • UpperCasePipe
    • LowerCasePipe
    • TitleCasePipe
  • Number -> String
    • DecimalPipe
    • PercentPipe
    • CurrencyPipe
  • Object -> String
    • JsonPipe
    • DatePipe
  • Tools
    • SlicePipe
    • AsyncPipe
    • I18nPluralPipe
    • I18nSelectPipe

使用方法

大写转换

<div>
  <p ngNonBindable>{{ 'Angular' | uppercase }}</p>
  <p>{{ 'Angular' | uppercase }}</p> <!-- Output: ANGULAR -->
</div>

日期格式化

<div>
  <p ngNonBindable>{{ today | date: 'shortTime' }}</p>
  <p>{{ today | date: 'shortTime' }}</p> <!-- Output: 以当前时间为准,输出格式:10:40 AM -->
</div>

数值格式化

<div>
  <p ngNonBindable>{{ 3.14159265 | number: '1.4-4' }}</p>
  <p>{{ 3.14159265 | number: '1.4-4' }}</p> <!-- Output: 3.1416 -->
</div>

JavaScript 对象序列化

<div>
  <p ngNonBindable>{{ { name: 'semlinker' } | json }}</p>
  <p>{{ { name: 'semlinker' } | json }}</p> <!-- Output: { "name": "semlinker" } -->
</div>

管道参数

管道可以接收任意数量的参数,使用方式是在管道名称后面添加:和参数值。如number: '1.4-4',若需要传递多个参数则参数之间用冒号隔开,具体示例如下:

<div>
  <p ngNonBindable>{{ 'semlinker' | slice:0:3 }}</p>
  <p>{{ 'semlinker' | slice:0:3 }}</p> <!-- Output: sem -->
</div>

管道链

<div>
  <p ngNonBindable>{{ 'semlinker' | slice:0:3 | uppercase }}</p>
  <p>{{ 'semlinker' | slice:0:3 | uppercase }}</p>
</div>

自定义管道

下面以过往项目中使用的管道为示例,讲解自定义管道步骤:

  • 使用 @Pipe 装饰器定义 Pipe 的 metadata 信息,如 Pipe 的名称 - 即 name 属性
  • 实现 PipeTransform 接口中定义的 transform 方法

定义

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

@Pipe({ name: "formatError" })
export class FormatErrorPipe implements PipeTransform {
    constructor() {}

    transform(value: any, module: string) {
        if (value.code) {
            return value.desc;
        } else {
            return value.message;
        }
    }
}

使用

<div *ngIf="errorMessage">
    <div class="message-box error mb-16" [@animate]="{value:'*',params:{opacity:'0',duration:'200ms'}}">
        {{errorMessage.error | formatError:"auth"}}
    </div>
</div>

总结

到此这篇关于Angular管道PIPE的文章就介绍到这了,更多相关Angular管道PIPE内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Angular2管道Pipe及自定义管道格式数据用法实例分析

    本文实例讲述了Angular2管道Pipe及自定义管道格式数据用法.分享给大家供大家参考,具体如下: 管道(Pipe)可以根据开发者的意愿将数据格式化,还可以多个管道串联. 纯管道(Pure Pipe)与非纯管道(Impure Pipe) 管道分纯管道(Pure Pipe)和非纯管道(Impure Pipe).默认情况下,管道都是纯的,在自定义管道声明时把pure标志置为false,就是非纯管道.如: @Pipe({ name: 'sexReform', pure:false }) 纯管道和非纯

  • Angular2的管道Pipe的使用方法

    管道Pipe可以将数据作为输入,然后按照规则将其转换并输出.在Angular2中有许多内置的Pipe,比如DatePipe.UpperCasePipe和CurrencyPipe等.在这里我们主要介绍如何自定义Pipe. 1. 管道定义 Pipe的定义如下代码所示: import { PipeTransform, Pipe } from '@angular/core'; /*users: Array<any> = [ { name: '1', id: 1 }, { name: '2', id:

  • Angular管道PIPE的介绍与使用方法

    前言 PIPE,翻译为管道.Angular 管道是编写可以在HTML组件中声明的显示值转换的方法.Angular 管道之前在 AngularJS 中被称为过滤器,从 Angular 2开始就被称为管道.管道将数据作为输入并将其转换为所需的输出. Angular Pipes 将整数.字符串.数组和日期作为输入,用| 分隔,然后根据需要转换成格式,并在浏览器中显示出来.在插值表达式中,可以定义管道并根据情况使用它,在 Angular 应用程序中可以使用许多类型的管道. 内建管道 String ->

  • Web开发使用Angular实现用户密码强度判别的方法

    Web前端使用Angular实现用户密码强度判别小记 用户密码合法条件: 1.8~16个字符 2.只能包含数字,字母和"_" "."(即不能含有非法特殊字符) 3.数字,字母和"_" "." 至少包含两种 实现过程: 长度检测-注:要区分中文和英文,中文两个字节,英文一个字节,在密码输入的时候是不能输入中文,但在检测用户名的使用,就需要区分中英文 // 获取字符串长度:中文也可正常获取 function GetStrLengt

  • 使用Angular 6创建各种动画效果的方法

    就技术角度而言,动画可以被定义为从初始状态到最终状态的转换过程.如今它已是各种Web应用不可或缺的组成部分.通过动画,我们不仅能创建出各种酷炫的UI,同时它们也能增加应用程序的趣味性.因此,设计精美的动画在吸引用户眼球的同时,也增强了他们的浏览体验. Angular能够让我们创建出具有原生表现效果的动画.我们将通过本文学习到如何使用Angular 6来创建各种动画效果.在此,我们将使用Visual Studio Code来进行示例演示. 准备工作 安装Visual Studio Code和Ang

  • Angular父组件调用子组件的方法

    理解组件 组件是一种特殊的指令,使用更简单的配置项来构建基于组件的应用程序架构 这样他能简单地写app,通过类似的web Component 或者angular2的样式. web Component 是一个规范.马上就要成为标准. 应用组件的优点: 比普通指令配置还简单 提供更好的默认设置和最好的实践 对基于组建的应用架构更优化. 对angular2的升级更平滑. 不用组建的情况: 对那些在 compile或者pre-link阶段要执行操作的指令,组件不能用,因为无法到达那个阶段. 如果你想定义

  • Angular浏览器插件Batarang介绍及使用

    Angular浏览器插件Batarang介绍 对于Angular新手来说,刚接手Angular的时候都会比较痛苦.确实,相对于JQuery.Backbone等,Angular门槛确实相对较高,而且比较难以调试.今天给大家带来一个Angular Chrome 插件Batarang的介绍,运用好改插件,会帮助加深对Angular的理解. 准备工作 安装Batarang: 方法一:在Chrome应用商店中查找Batarang,并安装. 方法二:在网上查找Batarang的安装包,直接在Chrome浏览

  • CMD命令行管道命令使用介绍

    一.什么是管道命令 管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息. 如 dir 命令会显示目录下所有文件夹和文件,可以使用管道命令| findstr "" 将dir的结果进行筛选,只保留需要的信息 | 命令管道符 格式:第一条命令 | 第二条命令 [| 第三条命令...] 将第一条命令的结果作为第二条命令的参数来使用,记得在unix 中这种方式很常见. 例如: dir c:\|find "txt" 以上命令是:查找C:\所有,并发现TXT 字符串.

  • C#使用命名管道Pipe进行进程通信实例详解

    1.新建解决方案NamedPipeExample 新建两个项目:Client和Server,两者的输出类型均为"Windows 应用程序".整个程序的结构如下图所示. 此Form1为Client的窗体,如下图所示. 后端代码,如下. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Syst

  • python编程学习使用管道Pipe编写优化代码

    目录 什么是管道? Where:可迭代对象中的过滤元素 Select: 将函数应用于可迭代对象 展开可迭代对象 1.chain方法 2.traverse:递归展开可迭代对象 将列表中的元素分组 结论 我们知道 map 和 filter 是两种有效的 Python 方法来处理可迭代对象. 但是,如果你同时使用 map 和 filter,代码可能看起来很混乱. 如果你可以使用管道那不是更好了?像下面这样的方式来处理. Pipe 库可以做到这一点. 什么是管道? Pipe 是一个 Python 库,可

随机推荐