获取无法读取属性' indexOf' null自定义过滤器,用于在angularjs中搜索

时间:2017-03-22 06:19:08

标签: angularjs

我正在使用自定义过滤器进行表格内容搜索,我的自定义过滤功能是

return function(data, search) {
    if(angular.isDefined(search)) {
      var results = [];
      var i;

      var searchVal = $filter('lowercase')(search);
      for(i = 0; i < data.length; i++){
        var name = $filter('lowercase')(data[i].name);
        var description = $filter('lowercase')(data[i].description);
        if(name.indexOf(searchVal) > -1 || description.indexOf(searchVal) > -1){
          results.push(data[i]);
        }
      }
      return results;
    } else {
      return data;
    }
  };

当我在搜索框中放入任何文字时,它会得到

TypeError: Cannot read property 'indexOf' of null

2 个答案:

答案 0 :(得分:1)

if((name !=null && name.indexOf(searchVal) > -1) || (description!=null && description.indexOf(searchVal) > -1)){
          results.push(data[i]);
    }

名称或描述在上面的代码

中给出null值

答案 1 :(得分:0)

检查空条件

serialize()