2017-03-22 74 views
0

我使用自定義過濾器對我的表中的內容無法讀取空自定義過濾器的特性「的indexOf」的搜索搜索我的自定義濾鏡功能是獲得在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 
+0

它可能表示您的名稱或說明爲空,因此您無法從null調用indexOf方法。 – imprezzeb

回答

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

名稱或說明是給空值試試上面的代碼

0

檢查爲空條件

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 !== null && description !== null){ 
    if(name.indexOf(searchVal) > -1 || description.indexOf(searchVal) > -1){ 
     results.push(data[i]); 
    } 
    } 
    } 
    return results; 
} else { 
    return data; 
} 
};