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()
方法)顺便说一下,上面的代码就是我的方法得到$curMagArticles
(通过Articles.query()
)。
我不知道是什么导致了我的问题,我的猜测是id:'@magid'
无法获取数据。顺便说一下,我也试过magArray['magid']
;它也没用。
我该怎么做???
在我添加“id”后,这是控制台中的magArray
:
Array[4]
0: g
1: g
2: g
3: g
$promise: Object
$resolved: true
id: "7"
length: 4
__proto__: Array[0]