管道中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中规则就是这样?

0
1
老汪仔
angular并不知道keyWork是用户输入的值,它只是一个值而已,我们通过响应式编程,将用户输入的值变为keyWork。
2018-10-04
共1条回复

Angular4.0从入门到实战 打造股票管理网站

Angular新特性,教你熟练使用 Angular 和 Typescript 开发组件式单页应用

2683 学习 · 1361 问题

查看课程