Angularjs 为什么是角形2“;过滤器“;被称为;管道;?
在中,当我们要格式化表达式的值以显示给用户时,我们使用angular。在中,我们使用相同的 角度1过滤器: HTML:Angularjs 为什么是角形2“;过滤器“;被称为;管道;?,angularjs,angular,Angularjs,Angular,在中,当我们要格式化表达式的值以显示给用户时,我们使用angular。在中,我们使用相同的 角度1过滤器: HTML: {{问候语|反向} Js: app.filter('reverse',function(){ 返回函数(输入,大写){ 输入=输入| |“”; var out=''; 对于(变量i=0;i
{{问候语|反向}
Js:
app.filter('reverse',function(){
返回函数(输入,大写){
输入=输入| |“”;
var out='';
对于(变量i=0;i
角度2:
HTML:
{{问候语|反向}
打字稿:
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/core'导入{Pipe,PipeTransform};
@管道({name:'reverse'})
导出类反向实体{
转换(输入:字符串):字符串{
输入=输入| |“”;
放出='';
对于(变量i=0;i
通过查看代码,可以得出结论,两者都做相同的事情。两者都有相同的角色和责任。我想知道的是为什么在Angular 2中它们被重命名为Pipe?因为Pipe具有更一般的含义,并且不仅仅用于过滤 您可能还想阅读关于Angular 2中缺少
过滤器的原因的段落:
Angular不附带用于过滤或排序列表的管道。
熟悉Angular 1的开发人员将其称为filter和orderBy。
在Angular 2中没有等价物
这不是疏忽。Angular 2不太可能提供此类管道
因为(a)他们表现很差,(b)他们阻止攻击性攻击
缩小。filter和orderBy都需要
引用对象属性。我们早些时候了解到,这种管道必须
几乎每一次变化都会被称为不纯管道
检测周期
过滤,尤其是排序是昂贵的操作。用户
在以下情况下,即使是中等规模的列表,经验也会严重降低:
Angular每秒多次调用这些管道方法。过滤器和
orderBy在Angular 1应用程序中经常被滥用,导致
抱怨角度本身很慢。那项指控在法律上是公平的
间接感觉Angular 1通过
首先,提供过滤器和orderBy
所以,您想知道什么是pipe
?这是因为“|”操作符被称为pipe。该名称来自操作符名称。但是pipe操作符还带有过滤器。。。为什么要否决投票?我错过什么了吗?
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;
};
});
<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;
}
}