Angularjs- foreach()带有$ resource的空数组



我有一个从服务中获得的数组,但是在控制器中,我在forEach()函数中获得一个空值。这是代码。

控制器

在这里,"产品"one_answers"复制产品"都是空的。我需要将"复合生产"数组与forEach()函数一起工作。

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

最新更新