Erreur: [ngRepeat:dupes] qu'est-ce que cela signifie?
répéter la directive outputing vin enregistrements à partir d'une api. J'ai une usine de fonction de servir le vin de l'API qui est alors accessible dans mon contrôleur
app.factory("Wine", function ($http){
var factory = {};
//getWines
factory.getWines = function(){
return $http.get("http://www.greatwines.9000.com")
}
}
Contrôleur:
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>
J'ai cliqué sur cette erreur et typique de la "vague" angularjs la mode, je reçois ceci:
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
Qu'est-ce que cela signifie? le vin n'est pas la même chose que "vins" alors pourquoi il pense que c'est un doublon?
OriginalL'auteur HGB | 2015-10-08
Vous devez vous connecter pour publier un commentaire.
Se produit si il y a des doubles de clés dans un ngRepeat expression. Des doubles de clés sont interdits parce que AngularJS utilise des clés pour associer les nœuds DOM avec les éléments.
Cela signifie que $champ d'application.les vins ont des valeurs qui sont en double.
Vous pouvez également consulter ce post : Angulaire ng-repeat Erreur "Doublons dans un répéteur ne sont pas autorisés."
OriginalL'auteur Sourabh Agrawal
Il est vrai que AngularJS utilise des clés pour associer les nœuds DOM avec les éléments. Ainsi, vous pouvez résoudre par l'ajout de "suivre par $index".
Il ressemblera à ceci
ng-repeat="vin vins de la piste par $index"
OriginalL'auteur Y. Tiwari