0
Ich möchte Sie fragen, wie Sie Daten über $ http.post, die ich von der Funktion mit $ q.defer() erhalten senden. Hier
ist das Stück Code:
HTML
<input type='text' ng-model='name'/>
<input type='file' id='inputFile' />
<button ng-click='save'>Save</button>
JavaScript
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;
});
Gesuch
$http.post(apiURL, {
name: $scope.name,
image: $rootScope.result
}).success(function(data) {
console.log(data);
})
Das Problem ist, dass, wenn ich save, dann Inhalt von "Name" gesendet wird, aber das $ rootScope.result ist leer. Auch wenn ich $ rootScope.result auf console.log() setze, kann ich das Ergebnis sehen, aber im Post ist es leer? Was kann möglicherweise schief gehen? Dank
Yay! Arbeitete genau richtig :) – marek