2015-10-08 23 views
6

Bir api'den gelen şarap kayıtlarının çıkışını tekrarlayın. Sonra benim denetleyicisi erişilen şarap API kadar hizmet etmek bir fabrika fonksiyonu varHata: [ngRepeat: dupes] Bu ne anlama geliyor?

app.factory("Wine", function ($http){ 
    var factory = {}; 

    //getWines 
    factory.getWines = function(){ 
     return $http.get("http://www.greatwines.9000.com") 
    } 

} 

Denetleyici: Bu hata hakkında ve tipik tıklandığında

app.controller("winesCtrl", function($scope, $http, Wine){ 
     Wine.getWines() 
     .success(function(wines){ 
      $scope.wines = wines; 
     }) 
     .error(function(){ 
      alert("Error!"); 
     }); 
    }); 

VIEW: 

<h2>Wine list</h2> 
    <div class="row margin-top-20 wine-container" ng-repeat="wine in wines"> 
     <div class="col-sm-3"> 
      <img src="{{wine.picture}}" class="img-responsive" /> 
     </div> 
     <div class="col-sm-9"> 
      <div class="margin-top-20"> 
       <span class="bold">Name: </span><span>{{wine.name}}</span> 
      </div> 
      <div> 
       <span class="bold">Year: </span><span>{{wine.year}}</span> 
      </div> 
      <div> 
       <span class="bold">Grapes: </span><span>{{wine.grapes}}</span> 
      </div> 
      <div> 
       <span class="bold">Country: </span><span>{{wine.country}}</span> 
      </div> 
      <div> 
       <span class="bold">Region: </span><span>{{wine.region}}</span> 
      </div> 
      <div> 
       <span class="bold">Price: </span><span>{{wine.price}}</span> 
      </div> 
      <div> 
       <span class="bold">{{wine.description}}</span> 
      </div> 
      <div class="margin-top-20"> 
       <a href="#/wines/{{wine.id}}" class="btn btn-default">Edit Wine</a> 
      </div> 
     </div> 
    </div> 

"belirsiz" Ben bu olsun moda angularjs :

Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: wine in wines, Duplicate key: string:e, Duplicate value: e 

Bu ne anlama geliyor? şarap "şaraplar" ile aynı değildir, bu yüzden neden bir kopya olduğunu düşünüyor?

cevap

10

ngRepeat ifadesinde yinelenen anahtarlar varsa oluşur. AngularJS, DOM düğümlerini öğelerle ilişkilendirmek için anahtarları kullandığı için yinelenen anahtarlar yasaklanmıştır.

Bu, $ scope.wines'in yinelenen bazı değerlere sahip olduğu anlamına gelir.

Ayrıca bu yazı başvurabilirsiniz: Angular ng-repeat Error "Duplicates in a repeater are not allowed."

+0

Teşekkür ama yine de bana mantıklı gelmiyor. Ayrıca HTTP isteğinin sonunda http://www.greatwines.9000.com/wines ekledim ve bazı nedenlerle çalışıyor. Bu gizemli böceklere ve angularjs ile düzeltmeye devam ediyorum. Bu çok tutarlı değil. – HGB