javascript - AngularJS:如何将 http 调用与变量同步?

标签 javascript angularjs angular-http

我正在尝试在 Controller 内执行通用函数,该函数为我提供来自后端的数据并将该数据分配给变量。

我已经编写了这段代码,但它无法正常工作。

self.getData = function(url){
    var deferred = $q.defer();

    $http.get(url)
    .success(function(data){
        deferred.resolve(data);
        console.log("Total profiles: " + data.data.length);         
    })
    .error(function(error){
        //do something
    });

    return deferred.promise;
};

$scope.data = self.getData(ServiceURL.url[7]);
console.log("Total profiles inside function: " + $scope.data.length);

对该函数的调用工作正常,并正确给出配置文件的总数,但是当我尝试将此数据分配给 $scope.data 时,它无法正常工作,因为当我尝试使用控制台显示配置文件的总数时。 log("总配置文件:"+ $cope.data.data.length) 我有下一个导出:

函数外的配置文件总数:$scope.data:未定义

此外,执行不同步,因为首先尝试显示 $scope.data 的值,然后显示来自后端的值。

如何同步此调用并将函数的退出正确分配给 $scope.data 变量?

有什么办法可以通过服务实现我想要的功能吗?我正在尝试这样做,但 $q 变量始终未定义,而且我不知道如何正确传递。你有什么运行良好的例子吗?

enter image description here

最佳答案

你不能只在函数中设置 $scope.data,然后像这样调用该函数吗?

  function getProfiles(){
    $http.get(url).success(response){
        $scope.data = response;
     } 
  getProfiles();

关于javascript - AngularJS:如何将 http 调用与变量同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33585251/

相关文章:

javascript - 在 AngularJS UI-Router 中动态更改 View

Angularjs $http.post 与内容类型 application/x-www-form-urlencoded 联系表格 7

LESS 中的 Javascript 显得步履蹒跚 : workaround?

javascript - Enyo 2 - Canvas 如何获取上下文

javascript - 使用 javascript/html5 即时生成声音

javascript - $resource 无法从 json 获取数组

javascript - 在 Javascript 中使用 For 循环的 innerHTML

javascript - AngularJS : Add click listener without using ng-click (for dynamicaly added data from a Json API)

node.js - 与前端和后端的错误通信(Java - Angular)

带有 rxjs 的 Angular HttpClient