/ / Problemas con el método de actualización en angularjs - angularjs, angular-resource

Problemas con el método de actualización en angularjs - angularjs, angular-resource

Quiero actualizar mi objeto json con el método PUT usando la función de actualización en angularjs, pero después de usar el método de actualización obtengo el error de:

angular.js:14324 TypeError: menuFactory.getDishes(...).update is not a function
at b.$scope.submitComment (controllers.js:104)
at fn (eval at compile (angular.js:15152), <anonymous>:4:159)
at e (angular.js:26673)
at b.$eval (angular.js:17958)
at b.$apply (angular.js:18058)
at HTMLFormElement.<anonymous> (angular.js:26678)
at bg (angular.js:3613)
at HTMLFormElement.d (angular.js:3601)

Este es mi código service.js:

.service("menuFactory", ["$resource", "baseURL", function($resource,baseURL) {
this.getDishes = function(){
return $resource("localhost:3000/"+"dishes/:id",{update:{method:"PUT" }});

};
}])

y este es mi código de controlador:

 .controller("DishCommentController", ["$scope", "menuFactory", function($scope,menuFactory) {

$scope.mycomment= {rating:"5", comment:"", author:""};

$scope.dish.comments.push($scope.mycomment);

menuFactory.getDishes().update({ id:$scope.dish.id }, $scope.dish);
}])

¿Por qué angular no reconoce el método de actualización,Tuve los mismos problemas con el método de obtención, pero después de actualizar mi versión angular a 1.6.0, el problema con el método de obtención se resolvió. Pero ahora tengo el mismo problema con el método de actualización.

¿Qué estoy haciendo mal aquí?

Respuestas

0 para la respuesta № 1

Creo que podrías estar llamando a $ resource incorrectamente.

Documentación y mira el uso:

$resource(url, [paramDefaults], [actions], options);

Estaba enviando acciones como parámetros paramDefault, así que solo ingrese un literal vacío para ese parámetro, a menos que desee personalizarlo.

Cambio

$resource("localhost:3000/"+"dishes/:id",{update:{method:"PUT" }});

a

$resource("localhost:3000/"+"dishes/:id",{}, update:{method:"PUT" }});