我正在嘗試爲我的項目構建一個篩選器,以便在表中顯示該篩選器。更具體地說,我想通過可能會根據用戶選擇而改變的特定屬性值來過濾項目。我試過以下,它似乎工作。在這種情況下,我希望我的國家陣列中沒有被命名爲斯德哥爾摩或哥德堡的所有城市。AngularJS在ng-repeat中獲取自定義篩選器
<table>
<tr ng-repeat="city in cities | filter: name:'!'+'Stockholm' || 'Gothenburg'">
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</table>
但是,我想用編程的方式使用構造過濾器的函數來完成這個功能,而且我似乎無法讓它工作。
<table>
<tr ng-repeat="city in cities | filter: getFilter()">
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</table>
$scope.getFilter = function() {
var filter = {};
if (something) {
filter['name'] = '!' + 'Stockholm';
}
if (somethingElse) {
filter['name'] += ' ||' + 'Gothenburg';
}
return filter;
}
如果這個'name:'!'+'Stockholm'|| 'Gothenburg''得到了工作,那麼顯然'getFilter'代碼將無法正常工作..就像它會產生'{name:'!'+'Stockholm'|| 'Gothenburg'}'而不是你所期望的 –
你需要創建一個自定義過濾器。 Angular JS已經有了內置的功能。請看這個https://docs.angularjs.org/guide/filter – Skywalker