所以我有一个用ng-repeat创建的简单列表,其中包含一个文本过滤器 以及一个带有数字的下拉菜单,它应该显示列表元素 从那段时间开始(比如说最近10天):
<input type="text" ng-model="filter.search" />
<select ng-model="filter.days">
<option value="1">1</option>
...
<option value="30">30</option>
</select>
<ul>
<li ng-repeat="notice in notices | filter: filter.search">
...
{{notice.modified.date | date:'dd.MM.yyyy'}}</li>
...
</li>
</ul>
但我不确定如何将<select>
过滤器应用于ng-repeat。
角度可以“开箱即用”,还是需要定制 过滤器,如果有,那些指针?
答案 0 :(得分:0)
'filter'过滤器支持将函数作为任意谓词传递。
http://docs.angularjs.org/api/ng.filter:filter
具体来说,表达式参数有:
function:谓词函数可用于写入任意过滤器。为数组的每个元素调用该函数。最终结果是谓词返回true的那些元素的数组。
所以你可以做这样的事情
<li ng-repeat="notice in notices | filter: filter.search | filter:withinDays">
$scope.withinDays = function(item) {
// Use $scope.filter.days + notice.modified.date to do day comparison, and return true/false.
};