Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从回调中获取数据并将其保存到AngularJS中的变量_Javascript_Ajax_Node.js_Angularjs_Callback - Fatal编程技术网

Javascript 从回调中获取数据并将其保存到AngularJS中的变量

Javascript 从回调中获取数据并将其保存到AngularJS中的变量,javascript,ajax,node.js,angularjs,callback,Javascript,Ajax,Node.js,Angularjs,Callback,下面是我的服务代码,它正在保存图像- angular.module("app").service('fileUpload', ['$http', function ($http) { return { uploadFileToUrl: function(file, uploadUrl){ var fd = new FormData(); fd.append('file', file); $http.post(uploadUrl,

下面是我的服务代码,它正在保存图像-

angular.module("app").service('fileUpload', ['$http', function ($http) {
    return {
      uploadFileToUrl: function(file, uploadUrl){
        var fd = new FormData();
        fd.append('file', file);
        $http.post(uploadUrl, fd, {
            transformRequest: angular.identity,
            headers: {'Content-Type': undefined}
        })
        .success(function(response){
          return response;
        })
        .error(function(){
        });        
      }
    }

}]);
在我的控制器中我有以下代码-

// Code for Image handling - START
if ($scope.myFile) {
    var file = $scope.myFile;
    console.log('file is ' + JSON.stringify(file));
    var uploadUrl = "/api/fileUpload";
    console.log("__FILE UPLOAD INFO__CHECK");
    console.log(fileUpload.uploadFileToUrl(file, uploadUrl));

}
// Code for Image handling - END
我希望console.log在
console.log(“文件上传信息检查”)之后记录返回数据但在控制台中其
未定义

虽然我在控制台中从AJAX请求获得了成功响应-

{
    "success": true,
    "old_path": "/tmp/ddde0cf3b8a8e4fa83a92b361e814394",
    "new_path": "/MYPROJECT_PATH/uploads/ddde0cf3b8a8e4fa83a92b361e814394.png",
    "save_image_name": "ddde0cf3b8a8e4fa83a92b361e814394.png"
}

让我知道这里回调的错误是什么?

它是异步的,所以应该使用回调函数

angular.module("app").service('fileUpload', ['$http', function ($http) {
    return {
      uploadFileToUrl: function(file, uploadUrl, successCb, errorCb){
        var fd = new FormData();
        fd.append('file', file);
        $http.post(uploadUrl, fd, {
            transformRequest: angular.identity,
            headers: {'Content-Type': undefined}
        })
        .success(function(response){
            if(successCb){
                successCb(response);
            }
        })
        .error(function(){
            if(errorCb){
                errorCb();
            }
        });        
      }
    }

}]);

请在您的答案中添加处理代码,因为这将有助于未来的访问者。。服务代码-处理代码-是否有任何具体原因导致您的否决投票或其在您的血液中?