返回数据在http请求中的角度不起作用

时间:2015-07-09 19:28:05

标签: javascript angularjs

我的下面的函数有角度的http请求。在success部分,我试图返回提供的数据,并返回我的setTextFile()函数中的值,但它未定义。我已经检查过数据不是null或未定义,所以我知道它包含信息,但我不明白为什么它不返回该内容。

var showFile = function (txtFile, host) {

        var datData;
        var url = 'rest/archive-viewer/spanish-discount/' +
                  $rootScope.currentEnv + '/' +
                    host + '/' +
                    txtFile;

        $http.get(url).success(function (data) {

            $scope.sendingMessage = "Getting file";
            $scope.sending = false;
            $scope.sendingMessage = "";


            return data;


        }).error(function (data) {
            $scope.sendingMessage = "Creation failed";
            $scope.sending = false;

        });


    }

    $scope.pullFiles();


};

以下是我的setTextFile函数,由于showFile()返回值,返回值未定义。

 var setTextFile = function (file,host) {
        console.log("Is this null " + showFile(file, host));
        return showFile(file, host);
    }

1 个答案:

答案 0 :(得分:1)

该http请求是异步的。我建议你做的是将数据分配给可验证的范围,例如:$ scope.setTextFile =你在ajax请求中传递的成功函数中的数据。相反,您可以创建一个函数来设置数据并在成功函数内触发函数。