$http.get 中的 AngularJS 访问变量

标签 angularjs angularjs-scope angularjs-controller angular-http angularjs-http

app.controller('EntryCtrl', ['$scope', '$http', function($scope, $http){
    $http.get(something.json).success(function(data){
      $scope.entries = data;
    });
    abc = $scope.entries.timestamp;  <-- not working
}]);

经过查找,发现$http是一个异步函数。所以我将它包装到一个函数中,但仍然无法正常工作。

app.controller('EntryCtrl', ['$scope', '$http', function($scope, $http){
    var getEntries = function(){ return
      $http.get(something.json).success(function(data){
        return data;
      });
    };

    $scope.entries = getEntries();
    console.log($scope.entries); // returns undefined
}]);

最佳答案

您的 console.log 在您的 promise 毫无疑问地返回之前就已启动。将console.log放入success.

我大概会这样写:

var getEntries = function(){ 
      $http.get(something.json).success(function(data){
        $scope.entries = data;
        console.log($scope.entries);
      });
    };

    getEntries();

此外,如果仍然存在问题,请使用 console.log(data) 并查看您得到的结果。这可能是后端问题。

Here is a plunker 这表明了我的意思。您不需要像以前那样将它包装在一个函数中。 $http.get 已经起作用了。

关于$http.get 中的 AngularJS 访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734380/

相关文章:

javascript - $scope.$on 是如何工作的,$destroy 是如何被调用的?

javascript - 检查数组中是否存在值(AngularJS)

javascript - 如何更新 Controller angularjs中的.value?

javascript - AngularJS Controller 变量未传递给子指令

javascript - 使用 AngularJs 加载图像

javascript - AngularJS Controller ,DRY 代码的设计模式

angularjs - $routeProvider 未显示 View

javascript - 多菜单级别 Angular js

javascript - 验证 Angular 1.5 中的自定义组件

javascript - AngularJS 不喜欢 a 标签