简体   繁体   English

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

[英]how to delete record in spring mvc using angularjs request

frontend code 前端代码

    <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=""; 
                      };
}]);

controller code 控制器代码

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

error came like this TypeError: User.delete(...).then is not a function Actually, User is a object and delete() method to pass the parameter in spring Controller method delete(). 错误是这样的TypeError:User.delete(...)。然后不是函数实际上,User是一个对象,并且是delete()方法,用于在spring控制器方法delete()中传递参数。

As I refereed with the docs, 正如我在文档中提到的那样,

User.delete is a Class action return an empty instance (with one of the additional properties below) User.delete是一个Class操作,返回一个空实例(具有下面的其他属性之一)

$promise : The promise of the original server interaction that created this instance or collection. $promise :创建该实例或集合的原始服务器交互的承诺。

So you need to call the $promise of the instance. 因此,您需要调用实例的$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=""; 
                      };
}]); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM