2017-07-24 47 views
0

所以文件輸入打開罰款,我可以選擇一個文件。我現在也可以上傳文件,並且可以綁定文件。但是ng-change事件從未被觸發。選擇文件輸入ng-change從不觸發

<img class="profile-pic" ng-click="addHeaderImage()" ng-src="{{applyform.UseProfilePic}}"/> 
<input type="file" ng-change="uploadHeader()" style="display: none" id="headerinput" ngf-select ng-model="file" ngf-multiple="false"/> 

$scope.addHeaderImage = function() { 
    document.getElementById("headerinput").click(); 
} 

$scope.uploadHeader = function() { 
    //$scope.loading = true; 
    var file = document.getElementById("headerinput").files[0]; 
    var reader = new FileReader(); 
    console.log("TJAABAB"); 
    reader.addEventListener("load", 
     function() { 
      //item.Image = reader.result; 
      console.log("UPLOAD"); 
      console.log(reader.result); 
      $scope.$apply(); 
      //$scope.updateQuoteHeader(item); 
      //$scope.loading = false; 
     }, 
     false); 
    if (file) { 
     reader.readAsDataURL(file); 
    } 
} 

所以當我選擇一個文件時,函數上傳頭永遠不會被觸發。這是爲什麼?

+0

'NG-change'觸發功能每當'NG-model'變化值。在你的情況下,'file'在你輸入的'ng-model'中,而不是'$ scope'變量。 –

回答

2

相反NG-變化,儘量平變化:

<input type="file" onchange="angular.element(this).scope().uploadHeader()" style="display: none" id="headerinput" ngf-select ng-model="file" ngf-multiple="false"/> 
+0

啊,偉大的工作! :) –