簡體   English   中英

承諾的角度$ http.post值

[英]Angular $http.post value from promises

我想問你如何通過$ http.post發送數據,我使用$ q.defer()從函數中獲取數據。

這是一些代碼:

的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;
});

發布請求

$http.post(apiURL, {
  name: $scope.name,
  image: $rootScope.result
}).success(function(data) {
      console.log(data);
})

問題是,當我點擊保存時,將發送“名稱”的內容,但是$ rootScope.result為空。 即使我將$ rootScope.result放入console.log()時也可以看到結果,但是在帖子中它是空的? 可能做錯了什么? 謝謝

我不知道這是否是您想要的:

$scope.save = function () {
    imgToBase64(file).then(function (result) {
        $rootScope.result = result;
        $http.post([...]);
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM