Искам да актуализирам моя обект json с PUT метод, използвайки функцията за актуализация в angularjs, но след използване на метода за актуализация получавам грешката на:
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)
Това е моят код на service.js:
.service("menuFactory", ["$resource", "baseURL", function($resource,baseURL) {
this.getDishes = function(){
return $resource("localhost:3000/"+"dishes/:id",{update:{method:"PUT" }});
};
}])
и това е кодът на моя контролер:
.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);
}])
защо ъгловата не разпознава метода на обновяване,Имах същите проблеми с метода на получаване, но след актуализиране на моята ъглова до 1.6.0 версия на проблема с решен метод. но сега имам същия проблем с метода Update.
Какво правя тук?
Отговори:
0 за отговор № 1Мисля, че може да се обадите на $ resource неправилно.
документация и вижте използването:
$resource(url, [paramDefaults], [actions], options);
Изпращали сте действия като параметри paramDefault, така че просто въведете празен литерал за този параметър, освен ако не искате да го персонализирате.
промяна
$resource("localhost:3000/"+"dishes/:id",{update:{method:"PUT" }});
да се
$resource("localhost:3000/"+"dishes/:id",{}, update:{method:"PUT" }});