如何使用两个参数生成 ngResource url

How to Generate ngResource url with two parameters

我正在尝试使用 angularjs 中的 ngResource 生成这个 url:

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

但我得到的是:

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

这是我的工厂

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'
            // }
        }
    });
})

我以后就是这样称呼它的

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

请问有人能帮帮我吗?我很着急

您需要在空对象中提及您的 params。像这样:

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'
            // }
        }
    });
})

url模板中的参数需要与调用中的参数匹配:

    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})