【问题标题】:AngularJs passing parameters to a serviceAngularJs 将参数传递给服务
【发布时间】:2017-11-01 11:20:35
【问题描述】:

我想通过 post 方法输入 ID 并从数据库中获取该 ID 的数据。我目前在我的控制器代码中收到错误“employeeID is not defined”。

控制器代码:

$scope.employeeID = '10';


function test() {
    var getData = myService.getEmployee(employeeID);
    getData.then(function (emp) {
        $scope.employees2 = emp.data;

    }, function () {
        alert('Error in getting records');
    });
}

test(employeeID);

服务代码:

this.getEmployee = function (employeeID) {
    var response = $http({
        method: "post",
        url: "Home/getEmployeeByNo",
        params: {
            id: JSON.stringify(employeeID)
        }
    });
    return response;
}

HomeController 代码:

    public JsonResult getEmployeeByNo(string EmpNo)
    {
        using (InsiteEntities dataContext = new InsiteEntities())
        {
            int no = Convert.ToInt32(EmpNo);
            var employeeList = dataContext.Employee.Find(no);
            return Json(employeeList, JsonRequestBehavior.AllowGet);
        }
    }

【问题讨论】:

    标签: angularjs model-view-controller


    【解决方案1】:

    改变

    来自

     var getData = myService.getEmployee(employeeID);
    

     var getData = myService.getEmployee($scope.employeeID);
    

    【讨论】:

    • 你在哪里进入功能测试?
    【解决方案2】:

    您应该传递EmpNo 参数而不是params 对象中的id 参数,这样URL 将形成Home/getEmployeeByNo?EmpNo=123 的形式

    this.getEmployee = function (employeeID) {
        var response = $http({
            method: "post",
            url: "Home/getEmployeeByNo",
            params: {
                EmpNo: employeeID //changed to `EmpNo`
            }
        });
        return response;
    }
    

    也从$scope 传递employeeID,如Sajeeth's answer 中所述,如myService.getEmployee($scope.employeeID);

    【讨论】:

    • @neela 将此答案标记为正确,如果有帮助,谢谢 ;)
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多