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

后端 未结 5 527
遇见更好的自我
遇见更好的自我 2020-11-30 23:37

How fix Error:

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

//

相关标签:
5条回答
  • 2020-11-30 23:51

    In order to handle arrays with the $resource service, it's suggested that you use the query method. As you can see below, the query method is built to handle arrays.

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

    User $resource("apiUrl").query();

    0 讨论(0)
  • 2020-11-30 23:51

    Make sure you are sending the proper parameters too. This happened to me after switching to UI-Router.

    To fix it, I changed $routeParams to use $stateParams in my controller. The main issue was that $stateParams was no longer sending a proper parameter to the resource.

    0 讨论(0)
  • 2020-11-30 23:59
    $resource("../rest/api"}).get();
    

    returns an object.

    $resource("../rest/api").query();
    

    returns an array.

    You must use :

    return $resource('../rest/api.php?method=getTask&q=*').query();
    
    0 讨论(0)
  • 2020-12-01 00:09

    First of all you should configure $resource in different manner: without query params in the URL. Default query parameters may be passed as properties of the second parameter in resource(url, paramDefaults, actions). It is also to be mentioned that you configure get method of resource and using query instead.

    Service

    angular.module('admin.services', ['ngResource'])       
      // GET TASK LIST ACTIVITY
      .factory('getTaskService', function($resource) {
        return $resource(
          '../rest/api.php',
          { method: 'getTask', q: '*' }, // Query parameters
          {'query': { method: 'GET' }}
        );
      })
    

    Documentation

    http://docs.angularjs.org/api/ngResource.$resource

    0 讨论(0)
  • 2020-12-01 00:12

    Also, if your service is sending an object instead of an array add isArray:false to its declaration.

    'query': {method: 'GET', isArray: false }
    
    0 讨论(0)
提交回复
热议问题