gpt4 book ai didi

javascript - AngularJS - forEach() 带有来自 $resource 的空数组

转载 作者:行者123 更新时间:2023-11-28 12:19:40 24 4
gpt4 key购买 nike

我有一个从服务获取的数组,但在 Controller 中,我在 forEach() 函数中得到一个空值。这是code .

Controller

此处,“products”和“copyProducts”均为空。我需要在 forEach() 函数中使用“copyProducts”数组。

app.controller("controllerApp", function($scope, serviceApp){

var products = serviceApp.query();
$scope.copyProducts = products;

angular.forEach($scope.copyProducts, function(value, key){
console.log("object: "+value);
})

});

服务

app.factory("serviceApp", function($resource){
return $resource("products.json", {}, {
getAll: {
method: "GET",
isArray: true
}
})
})

最佳答案

您的代码是错误的,因为 .query() 是异步的,因此它不会立即完成,并且结果未在下一行同步准备好。因此,它需要一个回调函数来在完成工作后触发。

serviceApp.query().$promise.then(function(res) {
$scope.products = res;
$scope.copyProducts = res;
angular.forEach($scope.copyProducts, function(item) {
console.log(item)
})
});

替代方案:

serviceApp.query({}, function(res, headers){
//etc
});

顺便说一句,如果您想使用在资源中定义的 getAll 方法,那么您不会使用 query()

  serviceApp.getAll().$promise.then(function(res){}).....etc

关于javascript - AngularJS - forEach() 带有来自 $resource 的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com