Понимание свойства isarray ресурса angularJS $
Я изучаю службу ресурсов angular и в угловое учебник добавляется пользовательское действие (запрос), которое имеет свой метод установить на " get " и параметры isarray имеет значение true
return $resource('phones/:phoneId.json', {}, {
query: {method:'GET', params:{phoneId:'phones'}, isArray:true}
});
однако, если вы посмотрите на документы для $resource действие "запрос" уже имеет свой метод установить на " get " и параметры isarray уже установлено значение true по по умолчанию. И я подумал, что могу просто уйти. те свойства.
на метод свойство, но оказывается, что если я оставлю параметры isarray свойства я получаю эту ошибку:
ошибка: [$resource:badcfg] ошибка в конфигурации ресурса для действия
query
. Ожидаемый ответ должен содержать объект, но получил массив
почему это?
1 ответов
Я думаю, вы неправильно поняли документацию.
по умолчанию без добавления каких-либо пользовательских действий, поддерживаются следующие:
'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
поэтому по умолчанию query
action ожидает, что массив будет возвращен, что имеет смысл, поскольку запрос обычно возвращает массив элементов.
Итак, если вы используете:
phonecatServices.factory('Phone', ['$resource', function($resource){
return $resource('phones/phones.json');
}]);
затем вы можете выполнить запрос вот так:
var queryParams = { name: 'test' };
Phone.query(queryParams, {}, function (response) {
$scope.phones = response;
});
теперь, если вы хотите добавить пользовательское действие тогда значение по умолчанию для isArray
is false
так:
return $resource('phones/:phoneId.json', {}, {
someCustomAction: {method:'GET', params:{phoneId:'phones'} }
});
необходимо будет вернуть объект. Если массив был возвращен, то isArray
необходимо установить в true
вот так:
return $resource('phones/:phoneId.json', {}, {
someCustomAction: {method:'GET', params:{phoneId:'phones'}, isArray: true }
});