angularjs变量无法在函数调用外访问

angularjs Variable cannot be accessed out side function call

本文关键字:函数调用 访问 变量 angularjs      更新时间:2023-09-26

最近我开始学习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上的这些数据。我们非常感谢在这方面提供的任何帮助。

由于$http success是一个异步调用,您不会立即在函数外获取数据,因此可以为"success"函数调用函数,或者使用回调函数

就您的代码而言,您可以在$scope变量上保存数据

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

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

以下代码对我有效。

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;
        });
}]);
相关文章: