2016-01-23 75 views
0

我無法讓自定義過濾器工作。angularJS全局過濾器模塊

我有全局過濾器的模塊:

angular.module('globalFilters', []).filter('dateRange', function() { 
    return function(item) { 
     console.log(item); 
     return true; 
    } 
}); 

這被注入到我的創作應用程序。 我想這個應用到NG-重複:

tr.pointer(ng-repeat="asset in completed | dateRange", ng-animate="'animate'", ng-click="selectAsset(asset);") 
    td {{asset.Name}} 

但是添加這種過濾器將過濾所有assets出表。要嘗試隔離問題,我將返回true以顯示所有assets但它不起作用。

item記錄到控制檯後,結果看起來像是所有assets的數組,因此我猜測出錯了。

我下面這個教程https://docs.angularjs.org/tutorial/step_09

謝謝!

+0

我用玉模板,呈現爲:​​{{asset.Name}} – kravits88

回答

2

你過濾數組...所以你的過濾函數需要返回數組。

.filter('dateRange', function() { 
    return function(itemArray) { 
     if(!itemArray){ 
      return null 
     }else{ 
      return itemArray.filter(function(item){ 
       // conditions of filter 
      }); 
     }    
    } 
}); 
+0

感謝這工作,我現在明白更好。 – kravits88

0

當您定義自定義過濾器函數時,傳遞到過濾器的值被過濾器返回的值替換,因此您將用true替換item

的日誌類別輸入而不改變它的過濾器,只返回輸入:

return function(item) { 
    console.log(item); 

    return item; 
}