【发布时间】:2015-10-20 17:01:57
【问题描述】:
我正在尝试为我在表格中显示的项目构建一个过滤器。更具体地说,我想通过某个属性值过滤掉项目,该属性值可能会根据用户的选择而改变。我已经尝试了以下,它似乎工作。在这种情况下,我希望我的国家/地区数组中的所有城市都没有命名为斯德哥尔摩或哥德堡。
<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 已经内置了。看看这个docs.angularjs.org/guide/filter
标签: javascript angularjs angularjs-filter