Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';使用ngRepeat和ng src时,看不到要上载的图像预览_Javascript_Angularjs_File Upload_Ng Repeat_Filereader - Fatal编程技术网

Javascript Can';使用ngRepeat和ng src时,看不到要上载的图像预览

Javascript Can';使用ngRepeat和ng src时,看不到要上载的图像预览,javascript,angularjs,file-upload,ng-repeat,filereader,Javascript,Angularjs,File Upload,Ng Repeat,Filereader,我已经为我的问题创造了一个新的解决方案 我正在使用HTML5FileReader和Angular创建一个简单的多文件上传,并预览要上传的图像 问题: 我没有在ng repeatspan中获取所选图像。但是,当我将其注销到控制台时,我确实获得了正确的图像数据。。。我做错了什么 HTML: Javascript: var app = angular.module("my.app", []); app.controller("FileUploadController", function($scop

我已经为我的问题创造了一个新的解决方案

我正在使用HTML5
FileReader
和Angular创建一个简单的多文件上传,并预览要上传的图像

问题: 我没有在
ng repeat
span中获取所选图像。但是,当我将其注销到控制台时,我确实获得了正确的图像数据。。。我做错了什么

HTML:

Javascript:

var app = angular.module("my.app", []);

app.controller("FileUploadController", function($scope) {
  $scope.images = [];

  $scope.upload = function() {
    var files = document.getElementById("files").files;

    if (files) {
      for (i = 0; i < files.length; i++) {
        if (files[i]) {
          var reader = new FileReader();

          reader.onload = function (e) {
            console.log(e.target.result);
            $scope.images.push(e.target.result);
          }

          reader.readAsDataURL(files[i]);
        }
      }
    }
  }; 
})
var-app=angular.module(“my.app”,[]);
app.controller(“FileUploadController”,函数($scope){
$scope.images=[];
$scope.upload=函数(){
var files=document.getElementById(“文件”).files;
如果(文件){
对于(i=0;i
具有相同的工作实现

<div ng-repeat="x in images">
<img class="thumb" ng-src="{{x}}" />

$scope.images=[];
$scope.imageUpload=函数(事件){
var files=event.target.files;//文件列表对象
对于(var i=0;i
尝试
$scope.$apply()
当您像下面这样修改集合时

     reader.onload = function (e) {
        console.log(e.target.result);
        $scope.images.push(e.target.result);
        $scope.$apply();
      }

最好是将代码包装在
$scope.apply
中,还是以后只调用
$scope.apply()
?两者都有效。。。
<div ng-repeat="x in images">
<img class="thumb" ng-src="{{x}}" />
$scope.images = [];

$scope.imageUpload = function(event){
     var files = event.target.files; //FileList object

     for (var i = 0; i < files.length; i++) {
         var file = files[i];
             var reader = new FileReader();
             reader.onload = $scope.imageIsLoaded; 
             reader.readAsDataURL(file);
     }

    $scope.imageIsLoaded = function(e){
        $scope.$apply(function() {
            $scope.images.push(e.target.result);
        });
    }
}
     reader.onload = function (e) {
        console.log(e.target.result);
        $scope.images.push(e.target.result);
        $scope.$apply();
      }