2016-11-07 14 views
3

私は、問題は、私が上で読んで、私は理由mongodb$indexでトラックを使用することができないということである私のng-repeat角度JS NGリピート重複するアイテム

$http.get("/test-server/rest/servizi/listaRuoli") 
 
    .success(function(data){ 
 
    \t $scope.servizio = data; 
 
    \t console.log(data.label); 
 
    })
<div class ="input_form_right"> 
 
    <strong>Seleziona un Servizio</strong> (obbligatorio)<br> 
 
    <select class="size_input_newbg"> 
 
     <option ng-repeat="x in servizio" ng-bind = "x.label"></option> 
 
    </select> 
 
</div>

で少し問題を抱えていますウェブ。 いくつかのアイデア? ありがとうございます!

+1

あなたの質問はちょっと混乱します。タイトルは何かを言い、質問の内容は何かを言います。どちらですか? – Ionut

+0

'track by $ index'を使ってみましたか? – Weedoze

答えて

2

利用代わりng-options

<select class="size_input_newbg" ng-model="yourmodel" 
    ng-options="r.id as r.label for r in servizio" 
    ng-bind = "r.label"> 
    <option value="" disabled="">Select One</option> 
</select> 
0

はこれを試してみてください:

<style> 
     .title-case { 
      text-transform: capitalize; 
     } 
</style> 

<div class ="input_form_right"> 
     <strong>Seleziona un Servizio</strong> (obbligatorio)<br> 
     <select class="size_input_newbg"> 
      <option class="title-case" ng-repeat="x in servizio track by $index">{{x.label}}</option> 
     </select> 
</div> 

MongoDBは$インデックスによって追跡とは何の関係もありません。重複するオプションをすべて削除しようとしている場合は、GETコールを次のように変更することをおすすめします。

$http.get("/test-server/rest/servizi/listaRuoli") 
.success(function(data){ 
    var seenBefore = []; 
    var out = []; 
    for (var i=0;i<=data.length-1;i++){ 
     if (seenBefore.indexOf(data[i].label) == -1) { 
       seenBefore.push(data[i].label); 
       data[i].label = data[i].label.toLowerCase(); 
       out.push(data[i]); 
      } 
    } 
    $scope.servizio = out; 
    console.log(data.label); 
}) 
関連する問題