使用ng-option作为具有唯一和空选项的过滤器

时间:2015-11-30 17:18:21

标签: angularjs

我试图根据数组中的对象构建一个选择过滤器。我遇到的一个问题是让过滤器与" 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

我发布了我的问题,无论如何可能帮助下一个人。

0 个答案:

没有答案