Я новичок в Angular и работаю над перехватчиком. Я создал angular factory, чтобы получить некоторые данные из такого API:
app.factory('Connection',['$resource',function($resource) {
return $resource('url',{param1: '1',param2: '55'},);
}]);
Я также создал перехватчик, который выглядит так:
app.factory('connectionInterceptor', function($q,$location) {
var connectionInterceptor = {
response: // code here
responseError: // code here
};
return connectionInterceptor;
});
Перехватчик работает хорошо. Но он перехватывает каждый http-запрос, который я делаю, и я хотел бы, чтобы он работал для определенного ресурса $. Я прочитал в документе angular $resource, что есть способ сделать это, добавив действие/параметр перехватчика в $resource. Итак, я попытался:
app.factory('Connection',['$resource',function($resource) {
return $resource('http://localhost:8080/api/login',{user: '1',password: '55'}, {},
query: {
method : 'GET',
interceptor : 'connectionInterceptor'
}
});
}]);
что не сработало. Выдает ошибку: Error in resource configuration for action query. Expected response to contain an object but got an array
.
Что я пропустил ?
$resource
. - person Pankaj Parkar   schedule 27.05.2015isArray: false
false отсутствует? - person Pankaj Parkar   schedule 27.05.2015isArray
? - person Arhyaa   schedule 27.05.2015connectionInterceptor
в фабрикуConnection
? - person OrenD   schedule 27.05.2015return $resource('...')
? Я внедрил его в модуль с помощью$httpProvider.interceptors.push('connectionInterceptor')
, и он отлично работал с каждым сделанным мной http-запросом. Кажется, это сработает, если я заменюquery
строкой, но я до сих пор не понимаю, почему. - person Arhyaa   schedule 27.05.2015