angular - 当我们在 html 中使用时,角度编译器如何解释 Pipe?
问题描述
我知道如何在角度 ts 文件或 html 文件中使用管道来过滤数据。但是我不明白当我们在 html 文件中使用它时,角度编译器如何解释我们的管道。鉴于组件,它如何附加管道类对象?
解决方案
为简单起见,我将从一个示例开始,我们有一个字符串数组,我们想应用一个管道来缩短它的句子或字符串
myArray= ['HereISTheFirstString' , 'HereISTheSecondString' , 'HereISTheThirdString']
所以我们要创建一个新文件让我们调用shorten.pipe.ts
,在文件里面
import { PipeTransform } from '@angular/core';
@Pipe({
name: 'shorten'
})
export class ShortenPipe implements PipeTransform {
transform(value: any) {
return value.substr(0 , 12) + '...';
}
}
要使用它,您必须添加到声明数组中app.module.ts
,现在我们需要在我们的 HTML 页面中使用它
<div *ngFor="let str of myArray">
<h3> {{ str | shorten }} </h3>
<div>
那么它实际上是如何工作的,每当编译器看到shorten
我们在其中定义它时它就会工作@Pipe({ name: 'shorten' })
- 你可以调用它 - 它会调用转换函数并将字符串作为值传递给它并返回结果。
您还可以通过 pramaters 来转换函数,例如
transform(value: any, limit: number) {
if(value.length > limit)
return value.substr(0 , limit) + '...';
return value;
}
对于 HTML
<div *ngFor="let str of myArray">
<h3> {{ str | shorten: 10 }} </h3>
<div>
对于:
缩短管道后,它接受一个参数,该参数指示应如何限制输出字符串,因此只要:
它是一个参数。
管道中的另一件事
链接管道
展示一系列管道如何工作的简单示例
<div>
{{ yourDate | date:'fullDate' | uppercase }}
</div>
它将从左到右并应用不同的管道。
我希望你能发现这很有用。
推荐阅读
- java - Android将字符串转换为日期会更改整个日期时间
- arrays - 不确定如何将此宏转换为使用多维数组而不是使用工作表比较
- java - 不显示在 html 中
- html - CSS - 表格数据不在固定表格标题下 - 溢出-X
- php - 在白色背景上打印一个 php 变量,然后停止执行
- sql - 当所有值都匹配一行时如何选择数据
- c++ - 在 C++ 中的一行中初始化多个变量
- android - 被谷歌保护阻止
- php - 使用 api.php 部署 laravel 项目后出现 NotFoundHttpException,为什么?
- javascript - Javascript:用闭包概括反应可加载