<p class="feedback-row feedback-list-imgs" ng-repeat="item in image_result">
<p class="feedback-list-img" ng-click="changePic(item)">
<!--<img ng-if="item.length" src="{{item}}">-->
<img ng-src="{{item}}" style="width:100%;height:100%;">
<!--<p class="img" style="background: url({{item}});background-size: 100% 100%;"></p>-->
</p>
<p class="img-delete" ng-click="deletePic(item)"><span class="ion-close-circled"></span></p>
</p>
js 调用原生
var data = ['取照片'];
$scope.curPictureIndex = -1;//当前图片索引
SGPlugin.showSelectedView($.proxy(self.onSelectPictureSuccess, self), data);
原生返回
/**
图片选择成功,显示图片并存储
**/
$scope.onSelectPictureSuccess = function(imageData) {
var self = this;
var imageDataTmp;
if (self.SGPlugin.isAndroid()) {
imageDataTmp = "data:image/jpeg;base64," + imageData;
} else {
imageDataTmp = imageData;
}
// 存储、置换该图片
var imageResultArray = $scope.image_result;
imageResultArray = _.isEmpty(imageResultArray) ? new Array() : imageResultArray;
if(self.curPictureIndex != -1){
imageResultArray[self.curPictureIndex] = imageDataTmp;
}
else {
imageResultArray.push(imageDataTmp);
}
$scope.image_result = imageResultArray;
$scope.$apply();
}
不重复的照片显示没有问题 上传重复的照片 有数据 但是不显示 求原因 报错
Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: item in image_result
La cause du problème est que le type de données des objets dans le tableau image_result est une chaîne, car ng-repeat ne permet pas à deux objets avec le même identifiant d'exister dans la collection pour les types de données de base tels que les nombres ou. chaînes, son identifiant est sa propre valeur. Par conséquent, deux nombres identiques ne sont pas autorisés à exister dans le tableau. Afin d'éviter cette erreur, vous devez définir votre propre piste par expression.
Solution :
élément dans les éléments suivi par item.id // Générer un identifiant unique à des fins commerciales
élément dans les éléments suivis par $index //Ou utilisez directement la variable d'index de boucle $index
Une autre chose à noter est que si des objets sont stockés dans le tableau :
Extrait de code HTML
Code JavaScript
Résultat de l'exécution :
Pour des exemples spécifiques, veuillez vous référer à JSBin
<p class="feedback-row feedback-list-imgs" ng-repeat="élément dans image_result suivi par $index">
Essayez de changer cela ici. Le tableau de boucles ng-repeat d'Angular signalera une erreur si le contenu du tableau est répété
La raison de l'erreur est dans ng-repeat
Par défaut, chaque élément doit être unique lors de ng-repeat. Parce que vous avez des données en double, un tel message d'erreur sera signalé
.Le message d'erreur vous a déjà indiqué la solution. Utilisez track by