Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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
Angularjs 无法在fileReader.onload函数中获取$scope变量_Angularjs_Filereader - Fatal编程技术网

Angularjs 无法在fileReader.onload函数中获取$scope变量

Angularjs 无法在fileReader.onload函数中获取$scope变量,angularjs,filereader,Angularjs,Filereader,我用的是这样的东西 app.controller('techiesClub', function($scope, $http) { $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.asdf = "ankur"; $scope.uploadImage = function () { alert($scope.asdf); ////////////WORKS WELL

我用的是这样的东西

app.controller('techiesClub', function($scope, $http) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";

    $scope.asdf = "ankur";
    $scope.uploadImage = function () {
        alert($scope.asdf);            ////////////WORKS WELL
        var filesSelected = document.getElementById("upload").files;
        if (filesSelected.length > 0) {
          var fileToLoad = filesSelected[0];

          var fileReader = new FileReader();

          fileReader.onload = function(fileLoadedEvent, ss) {
            var srcData = fileLoadedEvent.target.result; // <--- data: base64

             $scope.asdf = srcData;   //////////////////NOT WORKING

          }
          debugger;
          fileReader.readAsDataURL(fileToLoad, $scope);
        }
    }
});
app.controller('techiesClub',函数($scope,$http){
$scope.firstName=“John”;
$scope.lastName=“Doe”;
$scope.asdf=“ankur”;
$scope.uploadImage=函数(){
警报($scope.asdf);//效果良好
var fileselected=document.getElementById(“上载”).files;
如果(fileselected.length>0){
var fileToLoad=fileselected[0];
var fileReader=newfilereader();
fileReader.onload=函数(fileLoadedEvent,ss){
var srcData=fileloadevent.target.result;//Ankur

我们可以用这种方式重写html

 <input type="file" id="upload" name="pic" class="form-control" onchange="angular.element(this).scope().uploadImage(this);">

这里是JS代码段..我正在尝试Blob版本

$scope.uploadImage = function ($event) {
    alert($scope.asdf);            ////////////WORKS WELL
    var filesSelected = $event.files;
    if (filesSelected.length > 0) {
      var fileToLoad = filesSelected[0];
      var _ULR = window.URL || window.webkitURL;
      var img = new Image();
      img.onload = function() {
        var srcData = this.src; // <--- data: blob
         $scope.asdf = srcData;   //////////////////NOT WORKING
      };debugger;
      img.src =_ULR.createObjectURL(fileToLoad);   

    }
}
$scope.uploadImage=函数($event){
警报($scope.asdf);//效果良好
var fileselected=$event.files;
如果(fileselected.length>0){
var fileToLoad=fileselected[0];
var _ULR=window.URL | | window.webkitURL;
var img=新图像();
img.onload=函数(){

var srcData=this.src;//我认为您缺少解决方案中的关键点。我只是更改了您访问base64内容的方式。它应该可以工作

$scope.uploadImage = function () {
    alert($scope.asdf);            ////////////WORKS WELL
    var filesSelected = document.getElementById("upload").files;
    if (filesSelected.length > 0) {
      var fileToLoad = filesSelected[0];

      var fileReader = new FileReader();

      fileReader.onload = function(fileLoadedEvent) {
        var srcData = fileReader.result; // <--- data: base64

         $scope.asdf = srcData;   //////////////////NOT WORKING

      }
      debugger;
      fileReader.readAsDataURL(fileToLoad);
    }
}
$scope.uploadImage=函数(){
警报($scope.asdf);//效果良好
var fileselected=document.getElementById(“上载”).files;
如果(fileselected.length>0){
var fileToLoad=fileselected[0];
var fileReader=newfilereader();
fileReader.onload=函数(fileLoadedEvent){
var srcData=fileReader.result//
$scope.uploadImage = function () {
    alert($scope.asdf);            ////////////WORKS WELL
    var filesSelected = document.getElementById("upload").files;
    if (filesSelected.length > 0) {
      var fileToLoad = filesSelected[0];

      var fileReader = new FileReader();

      fileReader.onload = function(fileLoadedEvent) {
        var srcData = fileReader.result; // <--- data: base64

         $scope.asdf = srcData;   //////////////////NOT WORKING

      }
      debugger;
      fileReader.readAsDataURL(fileToLoad);
    }
}