0
$ q.defer()를 사용하여 함수에서 얻은 $ http.post를 통해 데이터를 보내는 방법을 묻습니다.
<input type='text' ng-model='name'/>
<input type='file' id='inputFile' />
<button ng-click='save'>Save</button>
자바 스크립트
HTML
file = document.getElementById('inputFile');
function imgToBase64(file_input) {
var deferred = $q.defer();
if (file_input.files && file_input.files[0]) {
var fileReader = new FileReader();
fileReader.onload = function (event) {
result = event.target.result;
deferred.resolve(result);
};
fileReader.readAsDataURL(file_input.files[0]);
}
return deferred.promise;
};
imgToBase64(file).then(function(result){
$rootScope.result = result;
});
POST 요청
: 여기 코드의 비트입니다3210$http.post(apiURL, {
name: $scope.name,
image: $rootScope.result
}).success(function(data) {
console.log(data);
})
문제는 '저장'을 누르면 'name'의 콘텐츠가 전송되지만 $ rootScope.result는 비어 있습니다. $ rootScope.result를 console.log()에 넣었을 때 결과를 볼 수 있지만 게시물에는 비어 있습니까? 무엇이 잘못 될 수 있습니까? 감사
야호를! 잘 했어 :) – marek