【发布时间】:2017-01-25 05:50:03
【问题描述】:
在Angular 1 中,当我们想要格式化表达式的值以显示给用户时,我们使用角度Filters。在Angular 2 中,我们使用Pipe 表示相同。
Angular 1 过滤器:
HTML:
<p> {{ greetings | reverse }}</p>
Js:
app.filter('reverse', function() {
return function(input, uppercase) {
input = input || '';
var out = '';
for (var i = 0; i < input.length; i++) {
out = input.charAt(i) + out;
}
// conditional based on optional argument
if (uppercase) {
out = out.toUpperCase();
}
return out;
};
});
Angular 2:
HTML:
<p> {{ greetings | reverse }}</p>
打字稿:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'reverse'})
export class ReversePipe {
transform(input:string): string {
input = input || '';
let out = '';
for (var i = 0; i < input.length; i++) {
out = input.charAt(i) + out;
}
return out;
}
}
通过查看代码,可以得出结论,两者都做同样的事情。两者具有相同的角色和责任。我想知道的是为什么在 Angular 2 中将它们重命名为 Pipe?
【问题讨论】:
-
那么,你想知道
pipe是什么吗? -
这是因为 ' | ' 运算符,即管道。名称来自运算符名称。
-
但是管道操作员也有过滤器...为什么要投反对票?我错过了什么吗?