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]