如何使用angularjs请求删除Spring MVC中的记录

时间:2018-12-11 07:34:08

标签: angularjs spring spring-mvc angularjs-ng-resource

前端代码

    <button data-ng-click="deleteRec()" id="Delete">delete</button>
        var app = angular.module('myApp', ['ngResource']);
 app.controller('UserController', ['$scope', '$resource',function($scope,$resource) 
    {
             $scope.deleteRec = function()
                     {
                        User = $resource(
                                'delete/:username',
                                 {method:'DELETE', params: {username: '@username'}});
                        User.delete({username: $scope.myform.username}).then(function successCallback(response) 
                        {
                            $scope.Message = response;
                        }, function errorCallback(response) {

                        });

                        $scope.myform.username = "";
                        $scope.myform.phone="";
                        $scope.myform.email="";
                        $scope.myform.address="";
                        $scope.myform.password=""; 
                      };
}]);

控制器代码

@RequestMapping(value="/delete/{username}")
    public @ResponseBody String delete(@PathVariable("username") String username) 
    {
        String user=retrievedataservice.delete(username);
        return null;
    }

这样的错误来了 TypeError:User.delete(...)。then不是一个函数 实际上,User是一个对象,是通过spring控制器方法delete()传递参数的delete()方法。

1 个答案:

答案 0 :(得分:1)

我参考了文档

User.delete是一个Class操作,它返回一个空实例(具有下面的其他属性之一)

$promise:创建该实例或集合的原始服务器交互的保证。

因此,您需要调用实例的$promise

 var app = angular.module('myApp', ['ngResource']);
 app.controller('UserController', ['$scope', '$resource',function($scope,$resource) 
    {
             $scope.deleteRec = function()
                     {
                        User = $resource(
                                'delete/:username',
                                 {method:'DELETE', params: {username: '@username'}});
                        User.delete({username: $scope.myform.username}).$promise.then(function successCallback(response) 
                        {
                            $scope.Message = response;
                        }, function errorCallback(response) {

                        });

                        $scope.myform.username = "";
                        $scope.myform.phone="";
                        $scope.myform.email="";
                        $scope.myform.address="";
                        $scope.myform.password=""; 
                      };
}]);