1

次の形式でデータを返す API があります (tastypie を使用):

{"meta":{
     "limit": 20, 
     "next": null, 
     "offset": 0, 
     "previous": null, 
     "total_count": 4}, 
     "objects": [
          {
           "id": 1, 
           "name": "name1", 
           "resource_uri": "/api/v1/operator/1", 
           "short_name": "NA1"
          },
          {
           "id": 2, 
           "name": "name2", 
           "resource_uri": "/api/v1/operator/2", 
           "short_name": "NA2"
          }, 
          ...
    ]
}

したがって、リソースを機能させるには、次を使用する必要があると考えました。

var Operator = $resource('http://127.0.0.1:8080\:8080/api/v1/operator/:operatorId',
    {operatorId:'@id'},
    {
        query: {
            method: 'GET',
            transformResponse: function (data) {
                console.log(JSON.parse(data).objects)
                return JSON.parse(data).objects;
            },
            isArray: true
        }
    });

しかし、 isArray を true に設定すると、次のエラーが発生しました。

TypeError: Object #<g> has no method 'push'

isArray を false に設定した場合、エラーは発生しませんが、オブジェクトにはこのリクエストのすべてのメタデータも含まれています...

この $resource 機能を正しく理解しているかどうかわかりません

4

2 に答える 2