如何在Angular JS中更改src后刷新图像

时间:2013-05-19 14:17:11

标签: image-processing angularjs

我想选择一个文件并以角度js加载。

一切正常,图像不会重新折叠的唯一问题。我可以看到一切正常,因为当我使用angular.js切换页面上的菜单时,图像已经刷新了。

这是我的代码:

<div ng-controller="TopMenuCtrl">
        <button class="btn" ng-click="isCollapsed = !isCollapsed">Toggle collapse</button>
        <input ng-model="photo"
           onchange="angular.element(this).scope().file_changed(this)"
           type="file" accept="image/*" multiple />
            <output id="list"></output>
            <img ng-src="{{imageSource}}">
    </div>

Angular js脚本:

$scope.file_changed = function(element) {
          var files = element.files; // FileList object
          // Loop through the FileList and render image files as thumbnails.
          for (var i = 0, photofile; photofile = files[i]; i++) { 

             // var photofile = element.files[0];
              var reader = new FileReader();
              reader.onload = (function(theFile) {
                    return function(e) {

                    $scope.imageSource= e.target.result;

                    };
                  })(photofile);

              reader.readAsDataURL(photofile);
            };

  }

1 个答案:

答案 0 :(得分:11)

当您在$scope.imageSource函数中手动更新onLoad时,您必须致电Scope.$apply,因为当您进行此更改时,Angular无法猜测。