ng2自定义管道

一、管道的作用及本质

作用:数据处理

本质:公用的方法

二、定义管道组件

//summary.pipe.tsimport { Pipe, PipeTransform } from ‘@angular/core‘;

@Pipe({    name: ‘summary‘,    // pure: false    管道默认为纯管道,如果加了pure:false 则为非纯管道  // 纯管道只能检测纯变更(原始类型(String Number Boolean Symbol)值的更改,或者对对象引用(Date Array Function Object)的更改)})
export class SummaryPipe implements PipeTransform {
  transform(value: number[], args: any[]): any{return value.reduce((prev,next)=>{prev + next}); //数组求和
  }
}

三、module组件中引入管道

//app.module.ts
import { NgModule } from ‘@angular/core‘;
import { BrowserModule } from ‘@angular/platform-browser‘;
import { AppComponent } from ‘./app.component‘;
import { SummaryPipe} from ‘./summary.pipe‘;

@NgModule({
  imports: [
    BrowserModule,
    SummaryPipe    //管道引入
  ],
  declarations: [
    AppComponent
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

四、组件中使用管道

// app.component.tsimport { Component } from ‘@angular/core‘;

@Component({
  selector: ‘my-app‘,
  template: `
    <div><span *ngFor="let i of list" >{{i}}&nbsp;</span></div>
<div>{{list | summary:value}}</div>
  //模板中使用管道
    <button (click)="addNum()">add 4</button>
  `,
  styleUrls:[‘./app.component.css‘]
})
export class AppComponent {
  list: number[] = [1,2,3];
  addNum() {
    this.list.push(4);
  }
}

五、页面效果

1.纯管道

点击按钮之后

2.非纯管道

点击按钮之后从图中可以看出,使用非纯管道实现了累加,而使用纯管道不能实现累加

六、说明

模板中可以在管道后面加冒号:如:

<div>{{list | summary:value}}</div>

这里的value则为传给管道的参数(args)

时间: 2024-08-22 01:06:29

ng2自定义管道的相关文章

angular自定义管道

对自定义管道的认识 管道的定义中体现了几个关键点: 1.管道是一个带有"管道元数据(pipe metadata)"装饰器的类. 2.这个管道类实现了PipeTransform接口的transform方法,该方法接受一个输入值和一些可选参数,并返回转换后的值. 3.当每个输入值被传给transform方法时,还会带上另一个参数,比如我们这个管道中的exponent(放大指数). 4.我们通过@Pipe装饰器告诉Angular:这是一个管道.该装饰器是从Angular的core库中引入的.

27自定义管道

①创建一个管道类文件   test.pipe.ts 指定transform方法对于数据和参数的处理,将结果返回 ②声明 app.module.ts import {TestPipe} from   ' *** ' @NgModule ( { declarations : [ TestPipe ] } ) ③调用自定义管道类 用法和内置管道没有区别 原文地址:https://www.cnblogs.com/shanlu0000/p/12229621.html

angular之自定义管道

1,装了angular2 的 cli之后,cmd中命令建立个管道文件 ng g p <name>; 如建一个在pipe文件中建一个add.pipe.ts文件 可以这么么写 ng g p pipe/add; 2,  add.pipe.ts内容如下: //原始内容import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'add' }) export class AddPipe implements PipeTransfo

28自定义管道练习

练习: 创建一个管道类 sex.pipe.ts 管道名字叫做sexchange  实现对性别的转换 1 |  sexchange  -->   男 0 |  sexchange  -->   女 1 |  sexchange  : true -->   男 1 |  sexchange : false  -->  boy 0 |  sexchange  : true -->   女 0 |  sexchange : false  -->  girl 代码改善 当没有传入

Angular 管道

一.date管道 1.html 2. 控制器中的定义brithday 3.效果图 如果时间格式 为: 我的生日是{{birthday | date:'yyyy-MM-dd HH:mm:ss'}} 则效果: 我的生日是2017-07-29 21:55:38 二.数字管道 圆周率为<p>{{pi | number:'2.2-2'}}</p> pi定义 pi:number = 3.1415926;显示效果:两位整数和两位小数 三.自定义管道 1.创建管道 ng g pipe pipe/m

Angular2 管道

1. 说明 管道用来转换模板显示的内容,应用程序中经常出现获取数据,转换数据,显示数据的逻辑.管道就是用来在转换数据阶段起作用的.主要存在两种类型的管道,pure pipe和impure pipe 2. Pure Pipe Pure Pipe,stateless,关注于纯粹对象的变更,检测到输入值发生了 纯变更 时才会执行 纯管道 . 纯变更 是指对原始类型值 (String .Number . Boolean . Symbol) 的更改, 或者对对象引用 (Date . Array . Fun

Angular09 数据绑定、响应式编程、管道

1 数据绑定的分类 1.1 单向数据绑定 1.1.1 属性绑定 -> 数据从组件控制类到组件模板 DOM属性绑定 HTML属性绑定 1.1.2 事件绑定 -> 数据从组件模板到组件控制类 1.2 双向数据绑定 组件模板和控制类的数据可以双向流通 2 属性绑定 请参见<揭秘angular2> P162 2.1 DOM属性绑定 2.2 HTML属性绑定 2.2.1 普通HTML属性绑定 2.2.2 CSS类绑定 2.2.3 Style样式绑定 3 事件绑定 请参见<揭秘angul

管道及页面生命周期

客户端请求发送到服务器进入管道执行页面生命周期: 客户发送请求到服务器,服务器通过扩展名扫描映射表,交给对应的扩展程序(aspnet_isapi.dll),扩展程序把请求传入framwork,即调用ISAPIRuntime pr方法,调用HttpRuntime pr方法,会创建HttpWorkerRequest,将请求封装到HttpContext,通过HttpApplicationFactory创建HttpApplication负责处理整个请求--调用pr方法,将HttpContext传入app

4.4管道Middleware简介「深入浅出ASP.NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 管道流 了解管道流机制,就能知道如何利用管道进行拦截,自定义封装等高级操作,所以学习管道流机制对我们编码有质的提高.那么管道数据是如何流通的呢?如下图所示,Request进入管道Middleware 1,叠加一层逻辑代码到HttpContext(切确说是HttpContext的Response对象),然后调用next()进入到下一个管道Middleware 2,依次递推,最后所有的逻辑代码叠加完毕后返回前端.