javascript - 来自 promise 的 Angular $http.post 值

标签 javascript angularjs post filereader angular-promise

我想问你如何通过 $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([...]);
    });
}

关于javascript - 来自 promise 的 Angular $http.post 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127358/

相关文章:

javascript - 支持内容脚本中的所有谷歌域

angularjs - Satellizer:无法获取除我自己的电子邮件之外的任何电子邮件的数据

PHP MySQL POST 插入

javascript - jquery ajax 发布被取消

javascript - 套接字.io 1.x : use WebSockets only?

javascript - 如何使用将 Observable 映射到值是可观察对象的对象的函数来映射 Observable?

javascript - 在 AngularJS 中为按钮添加默认值

angularjs - 带有自定义过滤器的Angular JS多个复选框

json - Django 请求 Post json

javascript - 显示标题和 SVG 元素的问题