angularjs变量无法访问侧函数调用

时间:2014-10-26 12:33:44

标签: javascript html angularjs

最近我开始学习AngularJS。我的问题如下。 我无法访问方法调用外的$ http.get()返回的数据。

代码:

(function(){
    var productApp = angular.module('productApp', []);

    productApp.controller('ProductController', ['$http', function($http){
        var store = this;
        store.products = [];

        $http.get('http://localhost:8080/VeggieFresh/veggie/product/1')
        .success(function(data){
            store.products = data;
            console.log(data);
        });
        console.log(store.products);
    }]);

})();

当我在$ http.get()方法中打印数据时,它可以打印没有任何问题,但是当我尝试在方法外打印时;它显示空数组。

我想因为这个我也无法在HTML上访问这些数据。 在这方面的任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:1)

由于$ http success是一个异步调用,你不会在函数外部立即得到数据,你可以调用函数来获得“success”函数,或者使用回调函数

就您的代码而言,您可以在$ scope variable

上保存数据
  $http.get('http://localhost:8080/VeggieFresh/veggie/product/1')
    .success(function(data){
        $scope.store.products = data;
        //console.log(data);
    });

答案 1 :(得分:0)

成功函数运行异步,因此您将获得成功函数内的结果。

答案 2 :(得分:0)

以下代码为我工作。

productApp.controller('ProductController', ['$http', function($http){
        var store = this;
        store.products = [];

        var promise = $http.get('http://localhost:8080/VeggieFresh/veggie/product/1');
        promise.success(function(data){
            store.products = data;
        });
}]);