请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

管道中transform 中参数疑惑

transform(list: any[], field: string, keyword: string ): any {

}

在管道课程中,老师讲到,transform中的参数,第一个是管道的原始值,第二个args参数是可选的。对照这个例子,list是原始值, field是参数,keyWord老师课程中讲,是指用户输入的值,为什么这个值是用户输入的值呢?keyword 和 响应式编程中,接收用户输入的keywork参数间的关系是什么?不懂

正在回答 回答被采纳积分+3

1回答

提问者 慕粉allida 2018-07-01 16:28:44

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 回复 有任何疑惑可以回复我~
  • angular并不知道keyWork是用户输入的值,它只是一个值而已,我们通过响应式编程,将用户输入的值变为keyWork。
    回复 有任何疑惑可以回复我~ 2018-10-04 00:37:40
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信