0

TypeError: Object #<g> has no method 'push'

我发现这是 angularJS 能给我的最烦人的调试信息:你只是简单地不知道它是什么!根据我的研究,人们会在非常不同的情况下遇到它们!

基本上这是我的 ngResource 工厂:

  .factory('Articles', function ($resource) {

    return $resource('http://localhost/../api/articles/:id', {
      id : '@magid',  //pass in param (magId) //or get from data object
    });
  })

通常当我调用它时,我使用查询方法来获取所有文章:$scope.curMagArticles = Articles.query({id:curMagId});像这样,它简单易行(并且有效)。

后来我发现我也需要保存它们。

我试过这个:

 var magArray = $scope.curMagArticles;
 magArray['id'] = magArray[0].magazineID;
 Articles.save(magArray);

其实我第一次尝试magArray.$save(),理论上不应该这样工作吗?(由于 $scope.curMagArticles 是一个 ngResource 对象,它应该包含$save()方法对吗?但控制台错误告诉我它没有$save()f 方法)顺便说一句,上面的代码是我得到的$curMagArticles(通过Articles.query())。

我不知道是什么导致了我的问题,我的猜测是id:'@magid'无法获取数据。顺便说一句,我也试过magArray['magid'];它也没有用。

我应该怎么办???


顺便说一句,这是magArray我在控制台中添加“id”后的控制台:

Array[4]
0: g
1: g
2: g
3: g
$promise: Object
$resolved: true
id: "7"
length: 4
__proto__: Array[0]
4

0 回答 0