使用angularJS中的$ resource将id发送到DELETE API

TBA*_*TBA 7 angularjs ngresource

我有一个带有$ resource的删除方法,用于我的angularJS服务,

return $resource(apiUrl, {}, {
    delete: {
        url: apiUrl+ ":itemId",
        params: { itemId: "@itemId" },
        method: 'DELETE'
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,在尝试调用delete方法时,从服务发送的请求没有itemId.

dataService.delete({ itemId: itemId}, {})
                .$promise
                .then((data) => {
                    // Statements
                })
                .catch((error) => {
                    // Logging
                })
                .finally(() => {});
Run Code Online (Sandbox Code Playgroud)

应该调用的URL是https://开头的URL:someport/1.0 /项/ {}的itemId但是当前的URL是https://开头的URL:someport/1.0 /项

有没有办法使用当前的$ resource代码获得这个doe?

San*_*mal 0

我认为您需要使用第二个参数来指定请求的参数。

return $resource(apiUrl, {itemId: '@itemId'}, {
delete: {
    method: 'DELETE'
}
});
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看完整文档https://docs.angularjs.org/api/ngResource/service/$resource。这会给你更好的主意。您需要在第二个参数(对象)中提供参数。

var User = $resource('/user/:userId',
{userId: '@id'},
{delete: {
    method: 'DELETE' }
});

User.delete({userId: 123}).$promise.then(function(user) {
  // perform other operations
});
Run Code Online (Sandbox Code Playgroud)