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()
メソッドが含まれているはずですよね? しかし、コンソール エラーは f メソッドがないことを教えてくれます$save()
) ちなみに、上記のコードは$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]