मैं अपने jSON ऑब्जेक्ट को PUT विधि के साथ अद्यतन करना चाहता हूं ताकि कोणीयज में अपडेट फ़ंक्शन का उपयोग किया जा सके लेकिन अपडेट विधि का उपयोग करने के बाद मुझे त्रुटि मिलती है:
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("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 संस्करण में अपडेट करने के बाद समस्या को हल करने की विधि प्राप्त हुई। लेकिन अब मैं अद्यतन विधि के साथ एक ही समस्या है।
मैं यहां क्या गलत कर रहा हूं?
उत्तर:
जवाब के लिए 0 № 1मुझे लगता है कि आप $ संसाधन को गलत तरीके से बुला रहे होंगे।
प्रलेखन और उपयोग को देखो:
$resource(url, [paramDefaults], [actions], options);
आप पैराडैमॉल्ट पैरामीटर के रूप में कार्यों में भेज रहे थे, इसलिए उस पैरामीटर के लिए केवल एक खाली शाब्दिक दर्ज करें, जब तक कि आप इसे अनुकूलित नहीं करना चाहते।
परिवर्तन
$resource("localhost:3000/"+"dishes/:id",{update:{method:"PUT" }});
सेवा मेरे
$resource("localhost:3000/"+"dishes/:id",{}, update:{method:"PUT" }});