$ http.get方法不起作用

时间:2016-01-26 22:21:38

标签: angularjs asp.net-web-api

我的Web API控制器中有一个方法返回一个布尔值:

 [HttpGet]
 public bool ValidateEmployee(string id)
 {
     return myRepository.VerifyEmployeeId(id);
 }

这是我通过Angular调用Web API的UI;

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Employee ID/PIN</title>
<script src="../../Scripts/angular.js"></script>
<script src="EmployeeLoginCtrl.js"></script>
</head>
<body ng-app="myClassesApp">
<div ng-controller="myClassesController">
    <form ng-submit="ValidateEmployeeId()" method="get" id="frmLogin" action="">
        <input ng-model="empId" type="text" id="txtEmpId" />
        <br />
        <input type="submit" value="Submit" id="btnSubmit" />
        <br />
        <span id="lblMsg">{{EmployeeValidate}}</span>
    </form>
</div>
</body>
</html>

这是我的角度控制器:

(function () {
    angular.module("myClassesApp", []).controller("myClassesController", EmpCtrlFunction);
    EmpCtrlFunction.$inject("$scope", "$http");
    function EmpCtrlFunction($scope, $http) {
        $scope.ValidateEmployeeId = function () {
            alert($scope.empId);
            $http.get('http://localhost:49358/api/myClasses/ValidateEmployee/' + $scope.empId).
                   then(function (result) {
                       alert(result);
                      $scope.EmployeeValidate = result.data;
             });
        }

    };
})();

当我输入一个id并单击一个按钮时,该行警告($ scope.empId);得到执行然后它永远不会到$ http.get

我做错了什么?

2 个答案:

答案 0 :(得分:0)

不要使用警报,因为警报阻塞并导致角度出现各种问题,请使用console.log转储变量值并使用浏览器中的控制台选项卡查看输出

console.log($scope.empId);

使用浏览器中的NET选项卡查看正在进行的HTTP请求

答案 1 :(得分:0)

注入依赖项的方式是错误的。它应该是

EmpCtrlFunction.$inject = ["$scope", "$http"];

因为$ inject不是函数。