मैं कुछ रिपॉजिटरीज़ में कस्टम क्रियाओं का उपयोग कर रहा हूं। और अब तक मुझे केवल यूआरएल और विधि निर्दिष्ट करना था।
उदाहरण के लिए:
updatePassword: {
url: ENV.NITRO_PROJECT_REST_URL + '/admins/:adminId/password',
method: 'PUT'
}
लेकिन फिर भी, मैं एक कस्टम क्रिया है कि था, नहीं एक कोड करने के लिए किया था, लेकिन दो पथ पैरामीटर:
technicianModule.controller('technician.teamCtrl',
['$scope', '$state', '$stateParams', 'CommonService', 'TechnicianService', 'TeamService', 'TeamTechnicianService',
function($scope, $state, $stateParams, CommonService, TechnicianService, TeamService, TeamTechnicianService) {
$scope.add = function(teamId) {
TeamTechnicianService.add(teamId, $stateParams.technicianId, function() {
TeamService.get(teamId, function(data) {
$scope.teams.push(data);
$scope.unassignedTeams.splice(CommonService.getResourceIndex($scope.unassignedTeams, data), 1);
});
});
};
}
]);
teamModule.factory('TeamTechnicianService',
['RESTService',
function(RESTService) {
var factory = {};
factory.add = function(teamId, technicianId, callback) {
return RESTService.TeamTechnician.add({teamId: teamId, technicianId: technicianId}).$promise.then(callback);
}
return factory;
}
]);
तो मैं पहली बार इसे पसंद कोडित:
TeamTechnician: $resource(ENV.NITRO_PROJECT_REST_URL + '/teamtechnicians/:teamtechnicianId', {}, {
add: {
url: ENV.NITRO_PROJECT_REST_URL + '/teamtechnicians/:teamId/:technicianId',
method: 'POST'
}
लेकिन यह काम नहीं करेगा। पैरामीटर पास नहीं किए गए थे।
कुछ प्रयासों के बाद मुझे पता चला कि यह कस्टम क्रिया परिभाषा से ठीक पहले कुछ पैरामीटर परिभाषा जोड़ते समय काम करता था।
ऐसा लगता है कि होना ही था:
TeamTechnician: $resource(ENV.NITRO_PROJECT_REST_URL + '/teamtechnicians/:teamtechnicianId', {
teamId: '@teamId',
technicianId: '@technicianId'
}, {
add: {
url: ENV.NITRO_PROJECT_REST_URL + '/teamtechnicians/:teamId/:technicianId',
method: 'POST'
}
नोट की उपस्थिति:
teamId: '@teamId',
technicianId: '@technicianId'
मेरे समझ एक $ संसाधन परिभाषा, एक से अधिक पथ पैरामीटर है कि एक कस्टम क्रिया में तो वह था , उन्हें @ संकेतों के साथ परिभाषित करने की आवश्यकता है।
और जब यह केवल एक नहीं है।
वह क्यों है?
और क्यों संसाधन पैरामीटर संसाधन के ऊपर की बजाय कस्टम कार्रवाई में घोषित नहीं किया जा सकता है?
डिफ़ॉल्ट पैरामीटर की आपकी व्याख्या आधिकारिक दस्तावेज़ीकरण से अधिक मदद करती है। – Stephane
ठीक है, पैरामीटर प्रति कस्टम कार्रवाई घोषित किया जा सकता है। लेकिन मुझे अपने POST अंक के लिए पैरामीटर की आवश्यकता क्यों नहीं है? – Stephane
@StephaneEybert: पोस्ट और पुट विधियां समान रूप से हैंडल हैं, इसलिए कोई अंतर नहीं होना चाहिए। क्या आप एक बेवकूफ या कम से कम एक ** [एसएससीसीई] (http://sscce.org) ** प्रदान कर सकते हैं, तो मैं जिस समस्या का सामना कर रहा हूं उसे पुन: उत्पन्न कर सकता हूं? (बीटीडब्लू, अगर इस जवाब ने आपको उतारने और/या इसे स्वीकार करने में मदद नहीं की है।) – gkalpak