Angularjs $ http服务错误

时间:2018-01-30 19:30:41

标签: angularjs

我在angularjs控制器和$ http服务之间有一个错误 错误是说没有定义权限。我试图将对象发布到API 任何想法或帮助,提前谢谢

 var userpermissions = angular.module("userpermissions", [])
                        .service("Permissions", function ($http) {
                            var urlBase = "/UserPermissionAPI/api";


                            this.save = function (url) {
                                return $http({
                                    method: "POST",
                                    url: urlBase + '/' + url,
                                    data: privileges,
                                    async: false,
                                })

                            };

                        })
.controller("userpermission", function ($scope, Permissions) {

$scope.insert = function () {
        var promisePost = Permissions.delete("UserPermission/delete?staffkey=" + $scope.staffkey + '&module=' + $scope.modulecd);
        promisePost.then(function (pl) {


        var privileges = {
            Staff_Key: $scope.staffkey, Update_Per: $scope.updates, Save_Per: $scope.saves, Delete_Per: $scope.deletes, Search_Per: $scope.searches,
            Add_Admin_User: $scope.staffkeyurl, Module_Code: $scope.modulecd, Report_Per: $scope.reports
           };

        var promisePost = Permissions.save("UserPermission/save");
        promisePost.then(function () {
            toastr.success("Successfully saved");
        })

    }, function (err) {
        console.log("Err" + err);
    });

}

2 个答案:

答案 0 :(得分:2)

您没有在服务的任何位置传递优先权,将其更改为

  var privileges = {
            Staff_Key: $scope.staffkey, Update_Per: $scope.updates, Save_Per: $scope.saves, Delete_Per: $scope.deletes, Search_Per: $scope.searches,
            Add_Admin_User: $scope.staffkeyurl, Module_Code: $scope.modulecd, Report_Per: $scope.reports
           };

 var promisePost = Permissions.save("UserPermission/save", previleges);

并且服务内部的方法接受优先权,

   this.save = function (url,previleges) {
        return $http({
            method: "POST",
            url: urlBase + '/' + url,
            data: privileges,
            async: false,
        })

    };

答案 1 :(得分:0)

var promisePost = Permissions.save("UserPermission/save");

This line needs to be changed.

In this line if you send privileges object as a one more parameter and change your save function to accept it, then this will work. Check below.

var promisePost = Permissions.save("UserPermission/save", privileges);

this.save = function (url, privileges) {
                return $http({
                    method: "POST",
                    url: urlBase + '/' + url,
                    data: privileges,
                    async: false,
             })
};