2017-03-22 9 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であるため、nullからindexOfメソッドを呼び出すことはできません。 – imprezzeb

答えて

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

名前や説明を取得するには、コードの上にしようと、null値を与えている

0

null条件を確認してください

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; 
} 
}; 
関連する問題