Angular-05:管道

这篇具有很好参考价值的文章主要介绍了Angular-05:管道。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

① 介绍

  1. 管道:pipe 。在angular中处理组件模板的数据格式。
  2. 管道操作符 | ,连接模板表达式中左边输入数据和右边的管道。

1.1 基本用法

例:这里使用了内置管道 date 对日期的显示做了美化

<P>my birthday is {{birthday}}</P>   <!-- my birthday is Mon Feb 01 1993 00:00:00 GMT+0800 (中国标准时间) -->
<p>my birthday is {{ birthday | date }}</p>   <!-- my birthday is Feb 1, 1993 -->
birthday = new Date(1993,1,1);

1.2 管道参数

<P>my birthday is {{birthday | date:"y-MM-dd EEEE"}}</P>  <!-- my birthday is 1993-02-01 Monday -->
<P>my birthday is {{birthday | date:"y/MM/dd EEEE"}}</P>  <!-- my birthday is 1993/02/01 Monday -->
birthday = new Date(1993,1,1);

1.3 链式管道

一个模板表达式中可以连续使用多个管道进行不同的处理。

<P>my birthday is {{birthday | pipeName1 | pipeName2 | pipeName3}}</P>

模板表达式的值“birthday”,通过管道pipeName1处理后在传递给pipeName2处理,一直到最后一个管道处理完毕,就输出链式管道处理的最终结果。

1.4 纯管道

  1. angular管道有两种变化检测机制,分别对应两种类型:纯管道和非纯管道。
  2. 默认为纯管道。
  3. 只有在检测到输入值发生纯变更时才会调用纯管道的transform() 方法来实现数据转换,在将数据更新到页面上。
  4. 纯变更:基本数据类型输入值的变更或对象引用的更改。(对象的引用检测方式比遍历对象内部所有属性值要快的多,angular使用的是对象引用的监测策略)

1.5 非纯管道

  1. angular管道有两种变化检测机制,分别对应两种类型:纯管道和非纯管道。
  2. 使用非纯管道,angular组件在每个变化监测周期都会调用非纯管道,并执行管道的transform() 方法来更新页面数据。
  3. 通过在管道元数据里将pure属性值设置为false来定义非纯管道
@Pipe({
  name: 'test-pipe',
  pure: false
})

② 内置管道

内置管道列举

序号 管道名 类型 说明
1 Date 纯管道 日期管道,格式化日期
2 Json 非纯管道 将输入数据对象经过JSON.stringify()方法转换后输出对象字符串
3 UpperCase 纯管道 将文本所有小写字母转成大写字母
4 LowerCase 纯管道 将文本所有大写字母转成小写字母
5 Decimal 纯管道 数值处理
6 Currency 纯管道 数值转成货币格式
7 Percent 纯管道 数值转成百分比格式
8 Slice 非纯管道 数组或字符串裁剪

③自定义管道

需求:

  1. 指定字符串不能超过规定长度,文字的长度超过规定的长度会被裁剪,并且显示…(省略号)
  2. 规定长度由管道参数决定
  3. substr() 语法: string.substr(start,length)。指定的是字符串的开始位置和长度

举例:

  1. 在页面上使用指令限制最多显示5个字,多余的截断并显示省略号。

定义管道:clipString

@Pipe({
  name: 'clipString'
})
export class ClipStringPipe implements PipeTransform {

  transform(value: string, limit: number): any {
    if (!value) return null;

    if (value.length > limit) {
      return value.substr(0, limit) + "...";
    }

  }

}

组件模板中的应用

<p>{{'今天是星期六呢' | clipString:6}}</p>

需要在declarations中声明文章来源地址https://www.toymoban.com/news/detail-734281.html

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: [
    ClipStringPipe
  ],
  exports: [SonComponent]
})
export class SonModule { }

到了这里,关于Angular-05:管道的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • angular前端环境搭建、安装angular

    1.下载node.js安装包(要求node版本大于12.20) Node.js官方网站 : https://nodejs.org/en/ 进入官网后,当前页面下载的是最新版本,如需要下载历史版本,点击红框标注的其他下载,在进入的新的页面底部,选择红框标准的先前版本,然后下载相应的版本,在跳转的页面下载win64的版

    2024年02月03日
    浏览(56)
  • Angular 11到升级到 Angular 16

    日新月异,与时俱进… 随着Angular版本不断更新,再看所开发的项目版本仍然是Angular 11,于是准备升级 截止发博日最版本是 v17.1.0,考虑到稳定性因素决定升级到v16版本 执行命令行 但是发现直接报错了… 红色字体大概意思就是: 迁移失败:发现不兼容的对等依赖项 安装依

    2024年02月04日
    浏览(35)
  • 【Angular开发】Angular中的高级组件

    在这个博客中,我将解释Angular中的几个高级组件和机制,它们增强了灵活性、可重用性和性能。 通过熟悉这些高级组件和机制,您可以提高您的Angular开发技能,并在应用程序中利用灵活性、可重用性和性能优化的能力。让我们开始吧! NgContent NgContent,或Angular中的内容投影

    2024年02月04日
    浏览(52)
  • 探索Angular测试艺术:Angular Testing Recipes

    项目地址:https://gitcode.com/juristr/angular-testing-recipes Angular Testing Recipes是一个开源项目,由开发者Juri Strumpfloeger精心打造,旨在为Angular开发者提供一系列实用的测试策略和示例代码。该项目以GitCode为平台,以Markdown格式分享了关于单元测试、组件测试、服务测试等方面的实战技

    2024年04月22日
    浏览(34)
  • [Angular] Import TranslateModule in Angular 16

    Angular 更新至V16版后,支援 standalone,故移除了 NgModule,而TranslateModule 又要在AppModule中 import,那该如何做呢?

    2024年02月16日
    浏览(46)
  • Angular(二) Understanding Dependency Injection for angular

    Angular https://angular.io/guide/dependency-injection Denpendency Injection,  or DI, is one of fundamental concepts for angular, DI is writed by angular framework and allows classes with  Angular decorators,  such as Components, directives, Piples and Injectables , to configure dependencies that they need.  Two main roles exists in DI system: dependency

    2024年02月09日
    浏览(37)
  • 【angular教程240112】09(完) Angular中的数据请求 与 路由

    【angular教程240112】09(完) Angular中的数据请求 与 路由 Angular中的数据请求 内置模块HttpClient实现(get post jsonp 以及第三方模板axios请求数据 一、 Angular get 请求数据 二、 Angular post提交数据 三、 Angular Jsonp请求数据 四、 Angular中使用第三方模块axios请求数据 五、Angular内置模块H

    2024年01月21日
    浏览(43)
  • Angular 17+ 高级教程 – Angular 的局限 の Query Elements

    熟悉 Angular 的朋友都知道,Angular 有非常多的局限,许多事情它都做不好,打开 Github 一堆 2016 - 2017 的 Issues,时至今日都没有解决。 原因也很简单 -- Angular 团队的不作为😔。 通常我会把常见的 Angular 的局限记入在这篇 Angular 的局限和 Github Issues,但由于本篇要讲的问题篇幅

    2024年04月24日
    浏览(42)
  • 【Angular架构】成为一名Angular架构师需要掌握的6个概念

    每个Angular开发人员都应该深入探索六个概念,以便掌握Angular并设计出架构良好的应用程序。 Angular是最大的框架之一:它提供了很多开箱即用的功能,这意味着从上到下有很多概念可以掌握。 我认为每个Angular开发人员都应该深入探索六个特定的概念,以便掌握Angular并能够熟

    2024年02月03日
    浏览(39)
  • Angular开发之——安装Angular CLI并初始化项目(02)

    Angular CLI介绍及开发环境准备 安装Angular CLI开发工具 使用Angular CLI初始化Angular项目 简单体验Angular 2.1 Angular CLI介绍 目前,无论你使用什么前端框架,都必须要使用到各种NodeJS工具,Angular也不例外。与其他框架不同,Angular从一开始就走的“全家桶”式的设计思路,因此@angul

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包