我一直在尋找這個一段時間。 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來處理字符串值而沒有問題。任何人都可以請我指出正確的方向?
只是一個建議:你可以做的if-else的typeof'fieldVal' – harishr 2014-11-02 09:38:27