Leslie Morejon
Leslie Morejon

Reputation: 117

How to Generate ngResource url with two parameters

i'm trying to generate this url using ngResource in angularjs:

http://url_api/contact/58dc70f18e029b1338a97abc/address/58e3e3988e029a1aec5ad465

but instead i'm getting this:

http://url_api/contact/58dc70f18e029b1338a97abc/address?address_id=58e3e3988e029a1aec5ad465

This is my factory

factory('Addresses', function($resource) {
  return $resource(url_base + 'contact/:id/address',{},{
       get: {
          method: 'GET', 
          isArray: true,
          url: url_base + 'contact/:id/address'
        },
        save:{
            method: 'POST'
        },
        delete:{
            method: 'DELETE',
            url: url_base + 'contact/:id/address/:addressId',
            // params:{
            //     id: '@_id',
            //     addressId: '@_addressId'
            // }
        }
    });
})

and this is how i call it later

Addresses.delete({id:$scope.id_contact,address_id:address_id_delete})

Please could anyone help me? I'm in a hurry

Upvotes: 0

Views: 49

Answers (2)

georgeawg
georgeawg

Reputation: 48948

The parameters in the url template need to match parameters in the call:

    delete:{
        method: 'DELETE',
        url: url_base + 'contact/:id/address/:addressId',
        // params:{
        //     id: '@_id',
        //     addressId: '@_addressId'
        // }
    }
//WRONG address_id
//Addresses.delete({id:$scope.id_contact,address_id:address_id_delete})

//RIGHT addressId
Addresses.delete({id:$scope.id_contact,addressId:address_id_delete})

Upvotes: 0

tanmay
tanmay

Reputation: 7911

You need to mention your params in the empty object you have. Like this:

factory('Addresses', function($resource) {
   return $resource(url_base + 'contact/:id/address',{
       id: '@id',
       addressId: '@addressId' 
   },{
       get: {
          method: 'GET', 
          isArray: true,
          url: url_base + 'contact/:id/address'
        },
        save:{
            method: 'POST'
        },
        delete:{
            method: 'DELETE',
            url: url_base + 'contact/:id/address/:addressId',
            // params:{
            //     id: '@_id',
            //     addressId: '@_addressId'
            // }
        }
    });
})

Upvotes: 1

Related Questions