2014-11-21 58 views
0

我在頁面頂部有一個HTML選擇框,頁面顯示文檔列表。選擇框將有一個可用的文件擴展名列表,用於過濾文檔列表。目前,我有:AngularJS - 爲每個不同的值只重複一次選擇選項

<select data-ng-model="filterType"> 
    <option data-ng-repeat="item in docItems" value="{{item.extension}}">{{item.extension}}</option> 
</select> 

什麼上面的代碼確實是給我一個列表,例如:

  • XLS
  • XLS
  • XLS
  • DOC
  • xls
  • pdf
  • PDF

但是我希望是,只顯示是這樣的:

  • XLS
  • PDF
  • DOC

所以,那隻能說明對方提供的一個值。

同樣重要的是,延長停留的期權價值,因爲這是我使用我的過濾器是什麼,就像這樣:

data-ng-repeat="docItem in docItems | filter:{extension: filterType}" 

回答

1

您可以通過文件名陣列需要循環,並建立一個新的只是擴展的數組。在你的控制器中做這個。

+0

採取「在你的控制器做這個」特別是指:不要創建一個過濾器來做到這一點,因爲過濾器不應該在每次運行時創建一個新的'Array'。 – hon2a 2014-11-21 13:36:55

0

您可以使用AngularUI的獨特過濾器(此處提供的源代碼:AngularUI獨特過濾器),並直接在ng選項(或ng-repeat)中使用它。

<select ng-model="orderProp" ng-options="place.category for place in places | unique:'category'"> 
    <option value="0>Default</option> 
    // unique options from the categories 
</select> 

How to make ng-repeat filter out duplicate results

相關問題