2017-02-21 32 views
-1

陣是這一點,唯一的名稱:DomicileName綁定從JSON數組中的唯一值到下拉列表中angularjs

$scope.domicile = {}; 
$scope.domicile.users = [{ 
    DomicileName: 'European', 
    PortFolioName: 'nternational Select x EM ADR', 
    Alias: 'ADR x EM', 
    Percentage: 1.0, 
    Ticker: 'ADR', 
    Category: 'ADRxEM', 
    SortOrder: 1 
}, { 
    DomicileName: 'European', 
    PortFolioName: 'International Select x EM ORD', 
    Alias: 'Ord x EM', 
    Percentage: 4, 
    Ticker: 'ORD', 
    Category: 'ADRxEM', 
    SortOrder: 1 
}, { 
    DomicileName: 'European', 
    PortFolioName: 'International Select with EM ADR', 
    Alias: 'ADR w EM', 
    Percentage: 4, 
    Ticker: 'ADR', 
    Category: 'ADRwEM', 
    SortOrder: '' 
}, { 
    DomicileName: 'Developed Market Non-European', 
    PortFolioName: 'International Select x EM ADR', 
    Alias: 'ADR x EM', 
    Percentage: 4, 
    Ticker: 'ADR', 
    Category: 'ADRxEM', 
    SortOrder: 1 
}]; 
+0

那麼,是你的代碼,是什麼問題? –

+0

我無法編寫僅過濾唯一DomicileName的函數 –

+0

您想實現什麼功能? – Mistalis

回答

0

angular.module('myApp',[]).controller('MyCtrl', function ($scope) { 
 
    $scope.domicile = {}; 
 
    $scope.domicile.users = [{ 
 
      DomicileName: 'European', 
 
      PortFolioName: 'nternational Select x EM ADR', 
 
      Alias: 'ADR x EM', 
 
      Percentage: 1.0, 
 
      Ticker: 'ADR', 
 
      Category: 'ADRxEM', 
 
      SortOrder: 1 
 
     }, { 
 
      DomicileName: 'European', 
 
      PortFolioName: 'International Select x EM ORD', 
 
      Alias: 'Ord x EM', 
 
      Percentage: 4, 
 
      Ticker: 'ORD', 
 
      Category: 'ADRxEM', 
 
      SortOrder: 1 
 
     }, { 
 
      DomicileName: 'European', 
 
      PortFolioName: 'International Select with EM ADR', 
 
      Alias: 'ADR w EM', 
 
      Percentage: 4, 
 
      Ticker: 'ADR', 
 
      Category: 'ADRwEM', 
 
      SortOrder: '' 
 
     }, { 
 
      DomicileName: 'Developed Market Non-European', 
 
      PortFolioName: 'International Select x EM ADR', 
 
      Alias: 'ADR x EM', 
 
      Percentage: 4, 
 
      Ticker: 'ADR', 
 
      Category: 'ADRxEM', 
 
      SortOrder: 1 
 
     }]; 
 
     
 
     _init(); 
 
     
 
     function _init() { 
 
     \t $scope.domicile.users = _uniq($scope.domicile.users, 'DomicileName') 
 
     } 
 
     
 
     function _uniq(array, property){ 
 
     \t var flags = [], output = [], l = array.length, i; 
 
     for(i=0; i<l; i++) { 
 
      if(flags[array[i][property]]) continue; 
 
      flags[array[i][property]] = true; 
 
      output.push(array[i]); 
 
     } 
 
     return output; 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp"> 
 
    <div ng-controller="MyCtrl"> 
 
    <select> 
 
     <option ng-repeat="user in domicile.users">{{ user.DomicileName }}</option> 
 
    </select> 
 
    </div> 
 
</div>

+0

謝謝很多先生 –

0

對我的方法,你必須得到的唯一值,您可以使用現代陣列功能過濾器,項目是當前的

$scope.uniqueDomicileUsers = $scope.domicile.users.filter(function(item, i, ar){ 
     return ar.indexOf(item) === i; 
    }) 

你也可以檢查一些屬性,它應該是唯一的,在這裏的第二個例子中,我使用的住所名稱

$scope.uniqueDomicileUsers = $scope.domicile.users.filter(function(item, i, ar){ 
    return ar.indexOf(item) === i && ar[i]['DomicileName']==item['DomicileName']; 
}) 
相關問題