我试图根据数组中的对象构建一个选择过滤器。我遇到的一个问题是让过滤器与" All"带空值的选项。
表格最初加载时显示所有显示,但是当我选择其他选项时,请返回"全部"我的桌子是空白的。
我已将documentType.MimeType添加为documentType.MimeType,以获取要过滤的对象中的特定字段,并且认为过滤器会忽略空值。我错过了什么?
HTML:
<select class="form-control" name="documentType" id="documentType"
ng-options="documentType.MimeType as documentType.MimeType for documentType in documentTypes"
ng-model="selectedDocType">
<option value="" selected="selected">All Document Types</option>
</select>
<tr ng-repeat="document in documents | filter:selectedDocType">
控制器:
controller: function ($scope) {
$scope.selectedDocType = "";
$scope.documents = [
{"FileName": "Test1.pdf", "MimeType": "application/pdf"}
,{"FileName": "Test2.pdf", "MimeType": "application/pdf"}
,{"FileName": "Cube1.png", "MimeType": "image/png"}
,{"FileName": "Cube2.png", "MimeType": "image/png"}
,{"FileName": "Cup1.jpg", "MimeType": "image/jpeg"}
,{"FileName": "Cup2.jpg", "MimeType": "image/jpeg"}
,{"FileName": "Cup3.jpg", "MimeType": "image/jpeg"}
]
$scope.documentTypes = _.uniq($scope.documents, false, function(docType){return docType.MimeType});
}
Plunker: http://plnkr.co/edit/EaIxCl2FaGwmDkj7t5il
我最后检查了github,看看在发布我的问题之前是否有任何问题报告,并发现: https://github.com/angular/angular.js/issues/1780
为解决我的问题,我对tr元素的ng-repeat进行了更改:
<tr ng-repeat="document in documents | filter:selectedDocType || '!!'">
固定的Plunker:http://plnkr.co/edit/8z2BNfZaf7rlTsiWvtCw
我发布了我的问题,无论如何可能帮助下一个人。