$ scope push不是一个函数

时间:2016-02-09 05:11:47

标签: javascript angularjs

我有一些代码:

$scope.offer = [];
function offer (Details) {
  angular.forEach(Details, function (product) {
    $scope.offer = SomeAPI.ById.query({ product: id }, function (response) {
      $scope.offer.push(response);
    });
  });
  console.log($scope.offer);
}

控制台出错:$ scope.offer.push不是函数。

2 个答案:

答案 0 :(得分:2)

在推送值

之前初始化数组
 $scope.offer = [];
angular.forEach(Details, function (product) {     
    $scope.offer = SomeAPI.ById.query({ product: id }, function (response) {
      $scope.offer.push(response);
    });
  });

答案 1 :(得分:1)

为什么要分配' $ scope.offer'返回API调用的类型。

 $scope.offer = SomeAPI.ById.query({ product: id }, function (response) {

这会更改' $ scope.offer'来自' []'数组类型可能是api返回的promise对象。这就是为什么push方法不适合你。

正确的代码应该是:

$scope.offer = [];
function offer (Details) {
  angular.forEach(Details, function (product) {
   SomeAPI.ById.query({ product: id }, function (response) {
      $scope.offer.push(response);
    });
  });
  console.log($scope.offer);
}