【发布时间】:2016-11-11 22:14:10
【问题描述】:
我有一个显示用户信息的表格。我们在顶部有一个搜索框,允许用户输入文本并从下拉列表中选择要搜索的类型。
<input type="text" ng-model=search>
<select ng-model=searchBy>
<option value="$">All</option>
<option value="Name">Name</option>
<option value="DoB">Date of birth</option>
<option value="Hobbies">Hobby</option>
</select>
<div ng-repeat="user in users | filter:searchFilter">
<div>{{user.Name}}</div>
<div>{{user.DoB | date: "MM/dd/yyyy"}}</div>
<div ng-repeat="hobby in user.Hobbies">{{hobby}}</div>
</div>
在 javascript 中:
Object.defineProperty($scope, "searchFilter", {
get: function () {
var out = {};
out[$scope.searchBy || "$"] = $scope.search;
return out;
}
});
这仅适用于名称列。对于日期列,格式有所不同,并且由于爱好在内部循环中,因此即使搜索文本在爱好中,用户也不会显示在列表中。有人可以提供满足所有这些值的过滤器吗?
TIA。
【问题讨论】:
-
您尝试实现此目的的任何代码?
标签: javascript angularjs angularjs-filter