2015-05-17 5 views
0

Я пытаюсь сделать функцию обновления для замены некоторых данных для пользователя. Я создал фабрику:

factory('Details', ['$resource', function ($resource) { 
    return $resource('/api/client/:id', null, { 
     'update': { method: 'PUT'} 
    }); 
}]); 

и контроллер:

.controller('ClientDetails', function ($scope, Details, $routeParams) { 
    $scope.client = Details.query({ id: $routeParams.id }); 

    $scope.editClient = function() { 
     $scope.client.$update(); 
    } 
}); 

и при входе в функцию editClient() он бросает и ошибку: $scope.client.$update is not a function

Что я сделал не так? Спасибо

ответ

2

По умолчанию метод query определен для возврата массива экземпляров: 'query': {method:'GET', isArray:true}, см. Документацию для ng-resource. И массив не имеет метода $update. Из вашего кода вам необходимо использовать get для извлечения экземпляра, например:

$scope.client = Details.get({ id: $routeParams.id }); 

$scope.editClient = function() { 
    $scope.client.$update(); 
} 
+0

Yeap! Спасибо, это имеет смысл. Но как я могу отправить обновленный объект в эту функцию обновления? –

+0

Не обращайте на это внимание :) Мне удалось отправить его на сервер, но у меня есть ошибка: E не является функцией ... когда-либо сталкивался с этим? –

+0

Мой плохой :(извините, я был расстроен, и я спросил, прежде чем отлаживать .get работал отлично, моя проблема заключалась в том, что получение с .query я показывал значения с клиентом [0] .name (...) и так и у меня также была ошибка на сервере. –

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