2014-01-03 2 views
2

Я изучил API, но он очень неадекватен. Пытался искать в сети и играл с несколькими примерами I found, но, похоже, он не может обрабатывать данные изображения. Вот некоторые испытания код:Какие типы данных обрабатывают ngPaste?

<input ng-paste='handlePaste($event)'> 

и контроллер:

.controller('PasteCtrl', ['$scope', function($scope) { 

     $scope.handlePaste = function(e) { 
     console.log("handler", e.clipboardData.items.length); 
     for (var i = 0 ; i < e.clipboardData.items.length ; i++) { 
      var item = e.clipboardData.items[i]; 
      console.log("Item type: " + item.type); 
      if (item.type.indexOf("image") != -1) { 
       console.log("Image paste data"); 
      } else { 
       console.log("Discarding non-image paste data"); 
      } 
     } 
    } 

    } 
]) 

С текстом вставленного сообщает, что clipboard.items.length является 1, с изображением вставили он сообщает нулевую длину.

Это как оно изменится или изменится в будущем или должно быть обработано каким-либо другим способом?

ответ

0

Следующие работы. Протестировано:

  • Chrome v40.0.2214.115
  • AngularJS v1.3.11

HTML

<input ng-paste="handlePaste($event)" placeholder='paste here'> 
<img ng-src="{{imageUrl}}"/> {{ imageUrl }} 

JS

.controller("appController", function ($scope){ 
$scope.handlePaste = function(e) { 
     for (var i = 0 ; i < e.clipboardData.items.length ; i++) { 
      var item = e.clipboardData.items[i]; 
      if (item.type.indexOf("image") != -1) { 
       var urlCreator = window.URL || window.webkitURL; 
       var imageUrl = urlCreator.createObjectURL(item.getAsFile()); 
       $scope.imageUrl = imageUrl; 
      } else { 
       console.log("Discarding non-image paste data"); 
      } 
     } 
    } 
}); 
0

Это работает для меня:

$scope.handlePaste = function(e) { 
    for (var i = 0; i < e.originalEvent.clipboardData.items.length; i++) { 
     var item = e.originalEvent.clipboardData.items[i]; 
     if (item.type.indexOf("image") != -1) { 
      var urlCreator = window.URL || window.webkitURL; 
      var imageUrl = urlCreator.createObjectURL(item.getAsFile()); 
      $scope.imageUrl = imageUrl; 
     } else { 
      console.log("Discarding non-image paste data"); 
     } 
    } 
} 
+0

Пожалуйста, добавьте объяснение, почему и как это работает. –

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