Ngoài câu trả lời Iris Wong, tôi muốn đưa ra một ví dụ về việc có nhiều params với nhiều phương pháp và hành động:
angular
.module('thingApp')
.factory('ThingResource', ['$resource', '$state', returnThing]);
Và tài nguyên:
function returnThing($resource, $state) {
var mainUrl = '/api/stuffs/:stuffId/thing'
var params = {stuffId: '@_id', thingMongoId: '@_id', thingNumber: '@_id'}
return $resource(mainUrl, params, {
'save': {
url: '/api/stuffs/:stuffId/thing/:thingMongoId',
method: 'POST',
interceptor: {
responseError: function(e) {
console.warn('Problem making request to backend: ', e)
$state.go('oops')
}
}
},
'get': {
url: '/api/stuffs/:stuffId/thing/:thingMongoId',
method: 'GET',
interceptor: {
responseError: function(e) {
console.warn('Problem making request to backend: ', e)
$state.go('oops')
}
}
},
'assignThing':{
method: 'POST',
url: '/api/stuffs/:stuffId/thing/assign/:thingNumber'
}
});
}
Mà cho 3 phương pháp riêng biệt :
// POST to http://currnt_base_url/api/stuffs/:stuffId/thing/:thingMongoId
ThingResource.save({
stuffId:'56c3d1c47fe68be29e0f7652',
thingMongoId: '56c3d1c47fe6agwbe29e0f11111'})
// GET to current http://currnt_base_url/api/stuffs/:stuffId/thing/:thingMongoId
ThingResource.get({
stuffId:'56c3d1c47fe68be29e0f7652',
thingMongoId: '56c3d1c47fe6agwbe29e0f11111'})
// POST to http://currnt_base_url/api/stuffs/:stuffId/thing/assign/:thingNumber
ThingResource.assignThing({
stuffId:'56c3d1c47fe68be29e0f7652',
thingNumber: '999998'})
Vấn đề là người gửi url được mã hóa, đó là lý do 'http: //' hoặc bất kỳ thứ gì có '/' sẽ thất bại. Bất kỳ ý tưởng? – Zymotik
@Zymotik http://stackoverflow.com/questions/22944932/angularjs-resource-how-to-disable-url-entity-encoding – cameronroe
Câu trả lời này hơi phức tạp cho những gì người hỏi đang tìm kiếm - câu trả lời của Iris đang bật điểm. – btk