ios - ionic 中使用 cordova camera 插件 上传重复图片 不显示
ringa_lee
ringa_lee 2017-04-18 09:55:37
0
3
517
<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_lee
ringa_lee

ringa_lee

모든 응답(3)
左手右手慢动作

문제의 원인은 image_result 배열에 있는 객체의 데이터 유형이 문자열이라는 것입니다. ng-repeat는 숫자 또는 숫자와 같은 기본 데이터 유형의 경우 동일한 ID를 가진 두 객체가 존재하는 것을 허용하지 않기 때문입니다. 문자열의 경우 해당 ID는 자체 값입니다. 따라서 두 개의 동일한 숫자가 배열에 허용되지 않습니다. 이 오류를 방지하려면 표현식별로 고유한 트랙을 정의해야 합니다.

해결책:

  • item.id로 항목 추적 // 비즈니스 목적으로 고유 ID 생성

  • $index로 항목 추적에 있는 항목 //또는 루프의 인덱스 변수 $index를 직접 사용

또 다른 주의할 점은 객체가 배열에 저장되어 있는 경우:

HTML 코드 조각

으아악

자바스크립트 코드

으아악

실행 결과:

구체적인 예시는 JSBin을 참고하세요

巴扎黑

<p class="feedback-row Feedback-list-imgs" ng-repeat="$index에 의한 image_result 트랙의 항목">

여기에서 이를 변경해 보세요. Angular의 ng-repeat 루프 배열은 배열 내용이 반복되면 오류를 보고합니다

黄舟

오류 원인은 ng-repeat에 있습니다

기본적으로 ng-repeat 시 각 항목은 고유해야 합니다. 중복된 데이터가 있으므로 이러한 오류 메시지가 보고됩니다.

오류 메시지에 이미 해결 방법이 나와 있습니다.

추적을 사용하세요. 으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿