2017-11-01 4 views
1

私はポストメソッドでIDを入力し、そのIDのデータをデータベースから取得したいと考えています。私は現在、私のコントローラコードに「employeeIDが定義されていません」というエラーが表示されています。AngularJsがサービスにパラメータを渡す

コントローラーコード:

$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); 
     } 
    } 

答えて

1

Chの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; 
} 

ように形成されるように

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

私は同じエラーを取得する – neela

+0

どこに機能テストに入っていますか? – Sajeetharan

1

var getData = myService.getEmployee(employeeID); 

からアンジュ

あなたは、paramsオブジェクトにidパラメータのEmpNoパラメータinspiteを渡す必要がありますパスemployeeIDから$scopeSajeeth's answerのようなmyService.getEmployee($scope.employeeID);

+1

これは問題全体を解決しました – neela

+0

@neelaこの答えを正しいとマークしました。 –

関連する問題