我在這個問題一天。當我嘗試點擊更新圖像按鈕時,會發生以下情況:儘管使用console.log,我仍然無法在第一次嘗試中進行圖像更新,但它會將正確的值返回給我。會發生什麼是當我第一次加載更新按鈕時向後端發出請求時,它總是返回先前圖像的blob,當我再次嘗試時,它會返回我嘗試在圖像中執行的圖像的blob先前的時刻並插入到數據庫中。總之,他總是提出遲到的要求,我並沒有這麼做,因爲。我已經嘗試添加$ scope。 $ Apply()並沒有工作。Reader.onload上傳圖像文件到blob angularjs
First update the blob of the previous image
Second update the blob correct of the image
總之,我需要做更新兩次,能夠將圖像切換到一個我想要的。
代碼:
function uploadFile(){
var file = $scope.profilePic;
var blob = new Blob([file], {
"type": "text/html"
});
var reader = new FileReader();
reader.onload = function(e) {
$scope.text = e.target.result.split(',')[1];
$scope.loadedUser.profilePic = $scope.text;
}
reader.readAsDataURL(blob);
};
HTML:
<div layout-gt-sm="row" style="margin-bottom: 20px;">
<input type="file" name="profilePic" fileread="profilePic">
</div>
APP:問題的
app.directive("fileread", [function() {
return {
scope: {
fileread: "="
},
link: function (scope, element, attributes) {
element.bind("change", function (changeEvent) {
scope.$apply(function() {
scope.fileread = changeEvent.target.files[0];
// or all selected files:
// scope.fileread = changeEvent.target.files;
});
});
}
}
}]);