2015-09-12 5 views
0

У меня есть служба угловых ресурсов, которая затем возвращает данные контроллеру, и я получаю все данные плюс данные по имени.Ошибка углового ресурса в консоли

Мое приложение работает очень хорошо в браузере, но я получаю ошибку ресурса в консоли. Плохая настройка ресурсов.

Я просмотрел различные вопросы, и все заявляют, что мне нужно установить свойство конфигурации isArray как false, так и true.

Я попытался сделать это, но у меня все еще есть ошибка.

Любые идеи очень ценятся.

Вот моя служба:

(function() { 
 

 
    var app = angular.module('test'); 
 

 
    app.service('ContactResource', function($resource) { 
 

 
     return $resource('/contacts/:firstname', {}, 
 
     {'update': {method: 'PUT'}}, 
 
     {'query': { method: 'GET', isArray: true }}, 
 
     {'get': { method: 'GET', isArray: false }} 
 
    ); 
 
    }); 
 

 
}());

А вот мой контроллер:

(function() { 
 

 
    var app = angular.module('test'); 
 

 
    app.controller('contactsCtrl', function($scope, $routeParams, ContactResource) { 
 
    $scope.contacts = ContactResource.query(); 
 

 
    $scope.singlecontact = ContactResource.get({firstname: $routeParams.firstname}); 
 
    }); 
 

 
}());

Ошибка я получаю: Erro г: [$ ресурс: badcfg]? http://errors.angularjs.org/1.4.2/ $ Ресурс/badcfg p0 = прибудете & p1 = объект & p2 = массив & p3 = GET & p4 =% 2Fcontacts

Когда я нажимаю он говорит:

Ошибка конфигурация ресурсов для действия get. Ожидаемый ответ содержит объект, но есть массив (запрос: GET/контакты)

Когда я получаю Ссылка/контакты Отклик:

[{EmailAddress: [email protected], и т.д.}]

Когда Ссылка/контакты/Firstname ответ является:

{EmailAddress: некоторые @ email.com, и т.д.}

+0

Вот трюк, который должен служить вам на всю карьеру программиста: когда вы получите сообщение об ошибке, прочитайте его и попытайтесь понять.Если вы не понимаете этого и задаете вопрос, опубликуйте его, потому что другие люди, вероятно, могут это понять или, по крайней мере, уже видели это. Игнорирование ошибки - лучший способ поиска проблем в неправильных местах. Не перефразируйте ошибку, не публикуйте ее два слова, не отправляйте сообщение. Опубликовать всю трассировку стека. –

+0

вы можете отправить * полную * ошибку, которую вы получаете? – Claies

+0

Я обновил сообщение с ошибкой. Спасибо за советы ребятам – pap

ответ

0

Я решил проблему путем добавления нового контроллера под названием один контроллер и путем отделения услуга на две функции. Вот как выглядит мой код сейчас.

Это услуга:

(function() { 
 

 
    var app = angular.module('test'); 
 

 
    app.service('ContactResource', function($resource, $routeParams) { 
 

 
    this.all = function() { 
 
     return $resource('/contacts', {}, 
 
     {'query': { method: 'GET', isArray: true }} 
 
    )}; 
 

 
    this.single = function() { 
 
     return $resource('/contacts/:firstname', {firstname: '@firstname'}, 
 
     {'query': { method: 'GET', isArray: false }} 
 
    ); 
 
    } 
 
    }); 
 

 
}());

И контроллеры:

(function() { 
 

 
    var app = angular.module('test'); 
 

 
    app.controller('contactsCtrl', function($scope, $routeParams, ContactResource) { 
 

 
    $scope.contacts = ContactResource.all().query(); 
 

 
    }); 
 

 
    app.controller('singleCtrl', function($scope, $routeParams, ContactResource) { 
 

 
    $scope.singlecontact = ContactResource.single().query({firstname: $routeParams.firstname}); 
 

 
    }); 
 

 
}());

По какой-то причине, которую я m еще не уверен, что $ resource не будет принимать их в один контроллер.

Смежные вопросы