管道中transform 中参数疑惑
来源:5-8 实战

慕粉allida
2018-07-01
transform(list: any[], field: string, keyword: string ): any {
}
在管道课程中,老师讲到,transform中的参数,第一个是管道的原始值,第二个args参数是可选的。对照这个例子,list是原始值, field是参数,keyWord老师课程中讲,是指用户输入的值,为什么这个值是用户输入的值呢?keyword 和 响应式编程中,接收用户输入的keywork参数间的关系是什么?不懂
1回答
-
慕粉allida
提问者
2018-07-01
transform(list: any[], field: string, keyword: string ): any {
if ( !field || !keyword) {
return list ;
}
return list.filter(item => {
const checkValue = item[field].toLowerCase();
return checkValue.indexOf(keyword) >= 0;
});
}transform方法中,参数的顺序是不能变的,对吗?第一个是原始值(也就是需要过滤的值),第二个是可选的参数,第三个是用户输入的值,那么用户的输入的值,在响应式编程时,输入给了后台的keywork,
this.nameFilter.valueChanges.pipe(
debounceTime(500)
).subscribe(value => {
this.keyWork = value;
console.log(this.keyWork);
});在管道中,程序怎么知道keyword就是用户输入的值呢?
页面上的代码:
<tr *ngFor="let stock of stocks | stockFilter:'name': keyWork; let i = index;">,
stockFilter是管道名称 name是参数,keyWork是用户输入的值,为什么程序知道name冒号后面写的这个参数名称,就是指用户输入的值呢?
是因为angular中规则就是这样?
012018-10-04
相似问题