ngResource无法访问“@magid”导致“没有方法推送”

时间:2013-11-09 17:19:35

标签: angularjs

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]

0 个答案:

没有答案