搜索不是Angular 2管道阵列过滤器上的函数错误

时间:2017-02-16 22:17:38

标签: arrays angular typescript

我有一个针对数组过滤的Angular 2搜索管道......就像这样...

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'SearchPipe'
})
export class SearchPipe implements PipeTransform {
  transform(value, args?): Array<any> {
    let searchText = new RegExp(args, 'ig');
    if (value) {
      return value.filter(ocurrence => {
        if ( ocurrence.nroCasoDegir ) {
          return ocurrence.nroCasoDegir.search(searchText) !== -1;
        }
      });
    }
  }
}

但我总是得到以下错误......

  

ocurrence.nroCasoDegir.search不是函数

我该如何解决?

由于

1 个答案:

答案 0 :(得分:0)

这个问题只是一个错字,你的意思是indexOf而不是search

试试这个:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
  name: 'SearchPipe'
})
export class SearchPipe implements PipeTransform {
  transform(value, args?): Array<any> {
    let searchText = new RegExp(args, 'ig');
    if (value) {
      return value.filter(ocurrence => {
        if ( ocurrence.nroCasoDegir ) {
          return ocurrence.nroCasoDegir.indexOf(searchText) !== -1;
        }
      });
    }
  }
}