2015-03-01 7 views
0

Значение изображения не обновляется в пользовательском интерфейсе, хотя изменяется переменная области.

Главный контроллер:

$scope.TVuploadModal = function($files) { 
       $scope.TvTemp.file = $files[0]; 
       $scope.TvTemp.fileName = $files[0].name 
       var fileReader = new FileReader(); 
       fileReader.readAsDataURL($scope.TvTemp.file); 
       fileReader.onload = function(e) { 
        $timeout(function() { $scope.TvTemp.file.dataUrl = e.target.result; }); 
       }; 
       $scope.ResourceOpenBannerImageCrop('lg'); 
      } 
      $scope.ResourceOpenBannerImageCrop = function(size) { 
       $modal.open({ templateUrl: 'BannerImageCrop.html', controller: 'resourceBannerImageCropCtrl', backdrop: 'static', size: size, scope: $scope, 
        resolve: { 
         TVImages: function() { 
          return $scope.TVImages; 
         } 
         } 
       }).result.then(function(images) { 
        console.log("Hello....."); 
        console.log($scope.TVImages); 
       /*$scope.TVImages = images;*/ }); 
      }; 

resourceBannerImageCropCtrl:

app.controller('resourceBannerImageCropCtrl', function($scope,$rootScope,TVImages,$routeParams, $modalInstance, $location, $upload,ResourceAdditionStepsUpdateService,mediaUploadService) { 
    $scope.myCroppedImage = ''; 
    $scope.TVImages1 = TVImages; 
    $scope.showSpinner = false; 
    $scope.imageCrop = function() { 
     $scope.showSpinner = true; 
     var requestMap = { imagedata:$scope.myCroppedImage, fileName:$scope.TvTemp.fileName, fileType:"Resource Images", userId: $rootScope.currentLoggedInUserId } 
     var saveResourceImages = mediaUploadService.saveImagesToUserBucket(requestMap, function(response) { 
      $scope.showSpinner = false; 
      if (response.isSuccess) { 
       var image = {} 
       image.uniqueKey = response.data.uniqueKey 
       image.fileUrl = response.data.url 
       image.fileType = "Resource Images" 
       image.description = $scope.description 
       image.type = "IMAGE" 
       image.s3UploadStatus = response.data.s3UploadStatus 
        ResourceAdditionStepsUpdateService.saveResourceImages({resourceId : $scope.resourceMetadata.resourceData.id , image : image},function(response){ 
         console.log(response.data.mediaList); 
         $scope.showSpinner = false; 
         if(response.isSuccess){ 
          $scope.TVImages1 = []; 
          $scope.TVImages1 = response.data.mediaList; 
          if (!$scope.$$phase) { 
            $scope.$apply(); 
           } 
         } 
        }); 
       $modalInstance.close(/*$scope.volcareTVImages*/); 
      } 
     }) 
    }; 
    $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; 
}); 

HTML:

<div class="col-sm-4 mb20" ng-repeat="image in TVImages"> 
    //content 
</div> 

Я передаю переменную области видимости (т.е. $scope.TVImages) в resolve, как вы можете видеть в код Я обновляю $scope.TVImages1.

В соответствии с моим пониманием двухсторонней привязки данных, если обновляется $scope.TVImages1, то $scope.TVImages также следует обновить с помощью resolve.

Я также пробовал использовать $scope.$apply, но это не сработало.

Что я делаю неправильно?

+0

Я испытал аналогичное поведение с угловым описанием, описанным в http://stackoverflow.com/questions/27166901/angular-view-template-content-updates-only-on-mouse-over. Можете ли вы попытаться удалить все активы, которые не имеют ничего общего с вашей угловой логикой? –

ответ

0

Касим,

Несколько дней назад, я также сталкиваются с такого рода вопросов при обновлении значения $ объема переменной, которая назначена как нг-повтора переменной в представлении.

Не могли бы вы, пожалуйста, попробуйте использовать следующую строку вместо $ scope.TVImages

$ rootScope.TVImages, который будет обновлять переменную вида.

Пожалуйста, дайте мне знать, если вы все еще сталкиваетесь с какой-либо проблемой.

Смежные вопросы