2015-09-30 109 views
0

我從$resource收到以下錯誤:角資源查詢錯誤

Error: [$resource:badcfg] Error in resource configuration for action `query`. Expected response to contain an array but got an object 

的API沒有返回數組,但它返回此:

{ 
    list: [...items...], 
    next: true, 
    limit: 100, 
    last: 0 
} 

我需要得到整個與query()對象並在我的$scope.items中按list。其他params需要分頁或無限滾動。

我該怎麼做?

編輯

這是我廠:

angular.module('app').factory('Items', ['$resource', 
    function ($resource) { 

     return $resource('/items/:id', { id: '@id' }, { 
      'query': { 
       method: 'GET', 
       isArray: false 
      }, 
      update: { 
       method: 'PUT' 
      } 
     }); 

    } 
]); 
+0

docs解釋如何將數組或對象設置爲響應 – charlietfl

+0

我添加了我正在使用的工廠,可能您正在討論'isArray',但即使我宣佈它收到該錯誤,但我無法獲取'object'。 –

+0

你不能只使用get()而不是query()?根據我的理解,這兩者之間的唯一區別實際上是isArray是否爲真 –

回答

0

你的工廠是正確的,只是從query刪除單引號:

... 
query: { 
    method: 'GET', 
    isArray: false 
} 
... 

編輯下面的評論

幾天前我有完全相同的問題,這是通過設置isArraytrue解決。所以,我很語法有信心,但對我來說我廠的稍有不同的聲明:

angular.module('docAccessApp',[]).factory('Access',function($resource){ 
    return $resource('http://localhost:8080/documentAccesses/:id',{id:'@_id'},{ 
     query: { 
      method: 'GET', 
      isArray:false 
     } 
    }); 
}); 

也許你需要硬性重新加載頁面以瀏覽器刷新所有JS緩存。

+0

我試過了,但不幸的是我總是收到那個錯誤... –

+0

它被緩存,就像你說的那樣,Chrome花了很多時間來恢復視圖... –