AngularJS $http.delete 在 "TypeError: Cannot assign to read only property 'method' .." 中崩溃了



我是JavaScript和AngularJS的新手。我正在尝试建立一个非常简单的 CRUD 应用程序。这是我的控制器的代码:

(function() {
    var app = angular.module('form.user', []);
    app.directive('formusergui', [function(){
        return {
            restrict: 'E',
            templateUrl: './js/views/user.form.html',
            controller: function($scope, $http) {
                this.formToBean = function() {
                    var ent = {};
                    ent.id = null;
                    ent.name = $scope.name;
                    ent.desc = $scope.desc;
                    ent.reg = Date.now; 
                    ent.linkImgProfile = null;
                    ent.type = null;
                    return ent;
                };
                this.create = function() {      
                    $http.post('./services/users', JSON.stringify(this.formToBean()))
                    .success(function(data, status, headers, config) {
                        $scope.esito = "success: " + JSON.stringify(data);
                    })
                    .error(function(data, status, headers, config) {
                        $scope.esito = "error: " + JSON.stringify(data);
                    });
                };
                this.delete = function() {
                    $http.delete('./services/users', JSON.stringify(this.formToBean()))
                    .success(function(data, status, headers, config) {
                        $scope.esito = "success: " + JSON.stringify(data);
                    })
                    .error(function(data, status, headers, config) {
                        $scope.esito = "error: " + JSON.stringify(data);
                    });
                };
                ...
            },
            controllerAs: 'userForm'
        };
    }]);
})();

formToBean函数通过表单收集数据。由于create函数运行良好(调用 REST 服务),delete函数中断了此错误:

TypeError: Cannot assign to read only property 'method' of {"id":null,"name":"john","desc":"doe","linkImgProfile":null,"type":null}

我发现了关于这种错误的类似问题,但我仍然无法理解出了什么问题。

对于 $http 中的 delete 方法,第二个参数是配置,在你的请求中代替配置相关数据,简单传递 JSON 对象,请参考 API 进行 $http.delete

https://docs.angularjs.org/api/ng/service/$http#delete

$http.delete('./services/users/:idtodelete')
   .success(function(data, status, headers, config) {
        $scope.esito = "success: " + JSON.stringify(data);
    });

相关内容

最新更新