NgResource получает вызов для запроса карты

я делаю небольшое приложение, и вчера я понял, что я не мог понять.

У меня есть контроллер на Java, прослушивающий запросы, он возвращает карту с более чем одним значением. Но когда я использую ngResource в контроллере, я вызываю метод .get() вместо .query(), а затем в представлении я могу перебирать ответ, который я получаю с помощью .get(), с чем-то вроде x in response... . Разве query() не предназначался для массивов, а get() только для одного объекта?

Может кто-нибудь объяснить это, пожалуйста? Благодарность

EDIT Итак, json, который я получаю от {"1":"PRUEBA","2":"HOLA"}, таков, и если я использую .query(), я получаю следующую ошибку:

Ошибка в конфигурации ресурса для действия Error in resource configuration for action{0}. Expected response to contain an {1} but got an {2} (Request: {3} {4}). Ожидаемый ответ должен содержать запрос, но получен массив (Запрос: объект GET)

Итак, я до сих пор не понимаю, зачем мне .get, если я получаю массив...


person txomin    schedule 18.05.2016    source источник


Ответы (1)


по умолчанию запрос возвращает массив, а get — нет.

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

вы можете перезаписать get или создать другую функцию с другим URL-адресом и установить для isArray значение true:

  angular.module('myModule').factory('myResourceFactory', function($resource, apiHost) {
  return $resource(apiHost + '/myresources/:myresourceId', null, {
        'query': { method:'GET', url: apiHost + '/myresources/:myresourceId/somethings',isArray: true}
    }); 
});

Метод запроса ожидает массив [{obj1},{obj2}]

Метод get ожидает объект {"1":"PRUEBA","2":"HOLA"}

в вашем случае вы должны использовать метод get().

person MayK    schedule 18.05.2016
comment
Хорошо, я это понимаю, но мой контроллер на Java возвращает два значения на карте, и я вызываю службу с помощью apiHos.myFunction().get(). Если я использую apiHos.myFunction().query, я получаю сообщение об ошибке. Я думал, что если я хочу вернуть объект карты, я должен сделать .query(), но нет, это то, чего я действительно не понимаю... может быть, я ошибаюсь?? ха-ха - person txomin; 18.05.2016
comment
какую ошибку вы получаете при использовании запроса? Можете ли вы привести пример результата, возвращаемого вашим API? - person MayK; 18.05.2016
comment
конечно ... но я сейчас не перед кодом ... я отредактирую вопрос как можно скорее, спасибо @Mayk !!! - person txomin; 18.05.2016
comment
Я только что отредактировал, если нужна дополнительная информация, просто скажите мне, спасибо - person txomin; 19.05.2016