2014-09-17 2 views
0

때때로 각도 리소스는 배열을 필요로하지만 객체를 가져 오거나 그 반대의 경우도 있습니다. 그럼이 같은 메시지가 : 나는 3, 5가있는 경우개체/배열 요구 사항과 일치하지 않는 요청을 알려주는 각도 리소스를 얻는 방법은 무엇입니까?

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

또는 10 아약스가는 요청, 나는 불평 각도를 만드는 하나의 단서가 없다.

어떤 URL 또는 리소스가 그것을 화나게하는지 어떻게 알 수 있습니까?

답변

1

배열을 반환하는 URL을 설정 했으므로 네트워크 탭의 응답에서 JSON을보고 {} 대신 []이 있는지 확인하십시오 (URL은 무엇을 반환하는지 알지만). 리소스의 해당 URL에 대해 isArray 속성을 true로 설정하십시오. resource docs :

{ 'get': {method:'GET'}, 
    'save': {method:'POST'}, 
    'query': {method:'GET', isArray:true}, 
    'remove': {method:'DELETE'}, 
    'delete': {method:'DELETE'} }; 
+0

나는 알고있다. 하지만 10 명이 달리고 10 명이 모두 200을 반환하면 Angular가 불평하는 사람이 누구인지 알기가 어렵습니다. 물론 하나씩 수정하고 실행할 수 있지만 Angular가 "리소스 사용자가 객체 대신 배열을 반환했습니다"또는 "resource/api/user/123이 객체 대신에 반환 된 배열"이라고 말합니다. – deitch

+0

By 위의 가정에서''get''는'isArray : false'를 가질 것입니다. 배열을 반환하는'GET/api/user/1,2.json'을 원할 수도 있기 때문입니다. 내 애플 리케이션에서, 나는 그것을 허용하는 리소스 오버라이드를 가지고 있으며 각각의 특정 리소스는 $ resource로부터 직접적으로가 아니라 내 리소스를 상속 받는다. – deitch