JSON データを次の形式で返す API を使用しています。
{
paging: {
previous: null,
next: null
},
data: [
{ title: 'First Item' },
{ title: 'Second Item' },
...
]
}
このデータを取得するためにAngular の$resourceサービスを使用しています。
コントローラーにある私のコードは、次のようになります。
var Entity = $resource('/api/entities');
var entities = $scope.entities = Entity.get();
ビューでは、次のようにデータを表示できます。
<ul>
<li ng-repeat="entity in entities.data">{{entity.title}}</<li>
</ul>
すべて正常に動作しますが、次の点に注意してください。
entities.dataオブジェクト全体ではなく、コンテンツのみをビューに公開したいと思いentitiesます。GET リクエストによって返されたデータをインターセプトして、データが入力される前に変更するにはどうすればよい$scope.entitiesですか?- 相関する質問: データの配列
Entity.query()を取得しているので、代わりに使用する方がクリーンですEntity.get()。しかし、Entity.query()上記のコードで使用すると、「TypeError: Object # has no method 'push'」というエラーが発生します。API は配列ではなくオブジェクトを返すため、これは理にかなっています (したがって、オブジェクトに対する「プッシュ」メソッドはありません)。.data繰り返しになりますが、応答から属性を抽出できれば、配列が得られます。
Dan Boyon によるこれらの指示に従って、デフォルトの$resourceサービスをカスタマイズし、.get() または .query() メソッドをオーバーライドすることができましたが、そこからどこへ行くべきかわかりません。