我在复选框上创建了一个过滤机制,以显示项目列表,并根据葡萄酒的示例进行修改。我想知道在基本代码结构方面是否缺少某些东西会使这个解决方案更易于理解(即结构),特别是在过滤器检查和DOM情况下我不能使用DOM#39 ;我没有按照它们应该使用的方式使用过滤器,或者我可以做些什么来消除代码行。
<div ng-controller="myCtrl">
<b>Category:</b>
<div ng-repeat="cat in getCategories()">
<b><input type="checkbox" ng-model="filter[cat]" /> {{cat}}</b>
</div>
<hr />
Popularity
<div ng-repeat="w in filtered=(wines | filter:filterByCategory)">
{{w.name}} ({{w.categories}})
</div>
<hr />
Number of results: {{filtered.length}}
</div>
...
$scope.filterByCategory = function (wine) {
if (!$.isEmptyObject($scope.filter)) {
var checkThisArray = wine.categories;
for (var i = 0; i < checkThisArray.length; i++) {
if ($scope.filter.hasOwnProperty(checkThisArray[i])) {
if($scope.filter[checkThisArray[i]]) {
return true;
}
}
}
}
return noFilter($scope.filter);
};