javascript - 错误: $injector:unpr Unknown Provider when try delete a record

标签 javascript asp.net angularjs

我将使用 Angular js 1.3.13 删除我的 asp.net mvc 项目中的一条记录。

 <tr ng-repeat="emp in employees track by $index">
            <td>
                <a href="#" class="btn btn-default btn-sm">
                    <i class="glyphicon glyphicon-edit"></i>
                </a>
            </td>
            <td>
                {{emp.EmployeeId}}
            </td>
            <td>
                {{emp.EmployeeName}}
            </td>
            <td>
                {{emp.Address}}
            </td>
            <td>
                {{emp.EmailId}}
            </td>
            <td>
                <a href="#" 
                   ng-click="delFn($index)"
                   class="btn btn-default btn-sm">
                    <i class="glyphicon glyphicon-trash"></i>
                </a>
            </td>
        </tr>

我的controller.js代码

app.controller("EmpCtrl", function ($scope, EmployeeService) {

GetAllEmployee();

function GetAllEmployee() {

    var getAllEmployee = EmployeeService.getEmployee();
    getAllEmployee.then(function (emp) {
        $scope.employees = emp.data;
    }, function () {
        alert('Data not found');
    });
}
    $scope.delFn = function (index) {
        var response = confirm('Delete this Employee?');
        if (response) {
           $scope.employees.splice(index, 1);
           EmployeeService.deleteEmployee(index);
        }
     }
});

在我的 service.js 中,我有

    app.service("EmployeeService", function ($http,id) {
    this.getEmployee = function () {
        return $http.get("/Employee/GetAllEmployee");
    };

    this.deleteEmployee = function () {
        var url = "/Employee/DeleteEmployee/" + id;
        $http.delete(url)
            .success(function (result) {
                alert("Delete Successfully");
            })
            .error(function () {
                alert("Something wrong!");
            })
            .then(function () {
                window.location = '#/';
            })
    }
});

在我的 asp.net Controller 中,我有删除方法

 [HttpDelete]
    public void DeleteEmployee(int id)
    {
       // blah
    }

但是我在chrome中调试它时遇到错误。

angular.min.js:102 Error: [$injector:unpr] http://errors.angularjs.org/1.3.13/$injector/unpr?p0=idProvider%20%3C-%20id%20%3C-%20EmployeeService

请您告诉我哪里出了问题?

最佳答案

id 参数从服务构造函数移至 deleteEmployee 函数:

    //REMOVE `id` argument
    //app.service("EmployeeService", function ($http,id) {
    app.service("EmployeeService", function ($http) {
    this.getEmployee = function () {
        return $http.get("/Employee/GetAllEmployee");
    };

    //ADD `id` here
    //this.deleteEmployee = function () {
    this.deleteEmployee = function (id) {
        var url = "/Employee/DeleteEmployee" + id;
        return $http.delete(url)
            .then(function (response) {
                alert("Delete Successfully");
                return response;
            })
            .catch(function (errorResponse) {
                alert("Something wrong!");
                throw errorResponse;
            })
            .then(function () {
                window.location = '#/';
            })
    }
});

来自error message link :

Unknown provider: idProvider <- id <- EmployeeService

注入(inject)器错误地尝试注入(inject)名为 id 的服务。

关于javascript - 错误: $injector:unpr Unknown Provider when try delete a record,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379119/

相关文章:

javascript - 用 Angular 连接两个 json 数组时“对象不是函数”

javascript - 关于请求参数的命名/选择的困惑

javascript - Go.js 复选框未附带表格

c# - HTTP 错误 500.19 - 无法读取配置文件

c# - 谷歌地图 API 加密

c# - Asp.net 网站速度非常慢,因为每个页面都有角色 checkin

javascript - 如何在nodejs集群之间共享变量?

javascript - 使用 ngx-prism 高亮显示 JS 语法

angularjs - Jasmine 单元测试 $timeout (expect($timeout).toHaveBeenCalledWith(n);)

angularjs - Jasmine Karma 表单字段单元测试