Rumah > Soal Jawab > teks badan
<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
ringa_lee2017-04-18 09:57:37
Punca masalah ialah jenis data objek dalam tatasusunan image_result adalah rentetan, kerana ng-repeat tidak membenarkan dua objek dengan id yang sama wujud dalam koleksi untuk jenis data asas seperti nombor atau rentetan, idnya ialah nilainya sendiri. Oleh itu, dua nombor yang sama tidak dibenarkan wujud dalam tatasusunan. Untuk mengelakkan ralat ini, anda perlu menentukan trek anda sendiri dengan ungkapan.
Penyelesaian:
item dalam trek item mengikut item.id // Jana id unik untuk tujuan perniagaan
item dalam trek item mengikut $index //Atau terus gunakan pembolehubah indeks gelung $index
Perkara lain yang perlu diberi perhatian ialah jika objek disimpan dalam tatasusunan:
coretan kod HTML
<body ng-app="exeApp">
<ul ng-controller="MainCtrl">
<li ng-repeat="user in users">
{{user.name}}
</li>
</ul>
</body>
Kod JavaScript
angular.module('exeApp', []).
controller('MainCtrl', ['$scope',
function($scope) {
$scope.users = [
{name: 'fer'},
{name: 'fer'}
]
}]);
Hasil jalankan:
Untuk contoh khusus, sila rujuk JSBin
巴扎黑2017-04-18 09:57:37
<p class="feedback-row feedback-list-imgs" ng-repeat="item in image_result track by $index">
Cuba tukar ini di sini tatasusunan gelung ng-repeat Angular akan melaporkan ralat jika kandungan tatasusunan diulang
黄舟2017-04-18 09:57:37
Sebab ralat adalah dalam ng-repeat
Secara lalai, setiap item mestilah unik semasa ng-repeat Kerana anda mempunyai data pendua, mesej ralat sedemikian akan dilaporkan
Mesej ralat telah memberitahu anda penyelesaiannya
ng-repeat="item in items track by $index"