2014-11-02 26 views
0

我一直在尋找這個一段時間。 stukennedy對angularjs filter (not working)的回答幫助我瞭解了一大堆工作。 現在我遇到問題試圖獲得更多的功能。 我想過濾數據作爲一個整數進來,但過濾器不工作,我假設,因爲HTML值給一個字符串,它是不一樣的。我如何獲得一個objFilter與Angular內的整數工作

<select ng-model="objects.level"> 
      <option value="">All</option> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      <option value="4">4</option> 
      <option value="5">5</option> 
      <option value="6">6</option> 
      <option value="7">7</option> 
      <option value="8">8</option> 
      <option value="9">9</option> 
      <option value="10">10</option> 
     </select> 

而且在那裏我有我的數據:

<ul class="items"> 
      <li ng-repeat="item in items | objFilter:objects" > 
      </li> 
     </ul> 

而且objFilter

app.filter('objFilter', function() { 
    return function(items, filter) { 
     if (!filter){ 
      return items; 
     } 
     var result = {}; 
     angular.forEach(filter, function(filterVal, filterKey) { 
      angular.forEach(items, function(item, key) { 
       var fieldVal = item[filterKey]; 
       if (fieldVal && fieldVal.toLowerCase().indexOf(filterVal.toLowerCase()) > -1){ 
        result[key] = item; 
       } 
      }); 
     }); 
     return result; 
    }; 
}); 

由於數據是從一個API來在我有過,我recieving數據沒有控制。我在同一列表中的其他地方使用了objFilter來處理字符串值而沒有問題。任何人都可以請我指出正確的方向?

+0

只是一個建議:你可以做的if-else的typeof'fieldVal' – harishr 2014-11-02 09:38:27

回答

1

這實在是凝灰岩明白是什麼問題,而不必一個一個看的「對象」的對象,以及一些數據,爲「項目」對象。
這麼說,我已經取得了使用自定義過濾器的一些端口,但是使它的一個例子Here簡單一點,其中的「選擇」部件是過濾項目的「級別」屬性。
基本上,自定義過濾器遍歷「對象」值並過濾項目中所有可以回答過濾器屬性的值。
所以,如果你在部件上選擇1,因爲這個屬性的值是「級別」:因爲它的級別是

{name:"bla", level:1} 

<select ng-model="objects.level"> 

終值將只選擇第一項與對象的值相同。

看一看我相信,例如,它會幫助你更好地理解它.. 祝你好運!

+0

的基礎上,這幾乎是完美的。謝謝您的幫助。我仍然試圖讓我的頭靠近Angular。如果選擇ALL,我需要添加什麼才能返回所有項目?不知怎的,我想像一個別的聲明? – DragoonKmesh 2014-11-03 23:58:38

+0

我懂了:)謝謝。 – DragoonKmesh 2014-11-04 05:53:56

相關問題