2015-04-27 64 views
0

我試圖綁定一個變量來檢測dropzone隊列的上傳進度,但由於某種原因,我的控制變量$scope.dropzone.sFileUploading跳過上下文時,我改變它和角度不更新模板Angularjs dropzone,out of context

這裏是我的控制器:

angular.module('DBDescriptorApp') 
.controller('DesignerController', ['$scope', '$rootScope', 'user', 
    function($scope, $rootScope, user) { 

     $rootScope.currentNav = 'designer'; 
     $rootScope.currentUser = user.data; 

     $scope.$watch('dropzone', function (value) { 
      if(value != undefined) { 

       $scope.dropzone.sFileUploading = false; 

       $scope.dropzone.on('addedfile', function(file) { 
        $scope.dropzone.sFileUploading = true; 
       }); 

      } 
     }); 

     $scope.dropzoneConfig = { 
      url    : 'dropzone', 
      parallelUploads : 3, 
      uploadMultiple : true, 
      maxFileSize  : 30, 
      addRemoveLinks : 'dictCancelUpload' 
     }; 

    }]); 

這裏是我的模板:

<div ng-include="'dist/templates/header.html'"></div> 

<div class="container-fluid"> 

    <div class="row-fluid"> 
     <div class="col-md-12"> 
      DESGINER 

      <hr/> 

      <form class="dropzone" method="post" enctype="multipart/form-data" ng-dropzone dropzone="dropzone" dropzone-config="dropzoneConfig"> 

      </form> 

      <div ng-show="dropzone.sFileUploading">UPLOADING!</div> 

     </div> 
    </div> 

</div> 

回答

0

我管理更新使用$適用()的範圍內,並放置所有在init作爲Dropzone Docs建議,這裏是代碼:

$scope.dropzoneConfig = { 
      init   : function() { 
       this.on('addedfile', function() { 
        $scope.$apply(function() { 
         $scope.filesUploading = true; 
        }); 
       }); 
      }, 
      url    : 'dropzone', 
      parallelUploads : 3, 
      uploadMultiple : true, 
      maxFileSize  : 30, 
      addRemoveLinks : 'dictCancelUpload' 
     };