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() メソッドをオーバーライドすることができましたが、そこからどこへ行くべきかわかりません。