我有一个角度控制器,它应该从数据库中获取产品,然后对它们执行一些操作。控制器具有一个功能,其中包含另一个功能。如何将从嵌套函数接收的数据返回给控制器?我几乎尝试了所有我能想到的东西,但似乎没有任何工作。
search.controller('SearchResultsController', function($scope, $routeParams, $http){
$scope.getAllProducts = function(){ //function 1
var config = {
method: "GET",
url: '/products',
headers: {"Content-Type": "application/json;charset=utf-8"}
};
$http(config).then(function(response) { //function 2
$scope.allProducts = response.data;
console.log($scope.allProducts) // correctly prints products fetched from server
});
$scope.getAllProducts();
console.log($scope.allProducts); //prints undefined
};
};
答案 0 :(得分:0)
您的函数最有可能正常工作,但它是一个异步函数调用,因此在下一行执行之前尚未完成。我建议您考虑重构此代码以使用服务,但根据您当前的代码结构,您在控制器启动时需要执行的操作应该在调用$ http时使用then函数。