2016-06-01 2 views
0

Angular JS 서비스를 다양한 용도로 사용하려고합니다. 필자는 이미 main script.js에서 기능을 만들었지 만 employeeService.js 서비스 파일로 이동하려고합니다. 그 안에, 내가 웹 서비스 내에서 Angular JS 서비스 오류가 발생했습니다.

/// <reference path="script.js" /> 
app.factory('fetchEmpService', function() { 
    var deleteEmp = function (EID) { 
     if (confirm("Are you sure want to delete?")) { 
      $http({ 
       method: "POST", 
       url: 'EmpWebService.asmx/DeleteEmployee', 
       data: { EmpId: EID }, 
       headers: { 'Content-Type': 'application/json; charset=utf-8' } 
      }) 
     .then(function (reponse) { 
      alert("Deleted successfully."); 
      $scope.getEmployee(); 
     }); 
     } 
    } 
    return { 
     deleteEmp:deleteEmp, 
    }; 
}); 

그리고 내 주요 script.js에서

이 서비스로서가 실행 및 제어가 있지만, 내부 간다
$http.get("EmpWebService.asmx/GetEmp") 
     .then(function (response) { 
      $scope.employees = response.data; 
     }); 

을 파일 - 코드 -되는 이때, 삭제 기능을 구현하기 위해 노력하고 그 다음과 같은 오류가 발생했습니다. angular.js : 5582 ReferenceError : $ http가 정의되지 않았습니다.

마찬가지로 EmployeeList 함수를 가져 오는 중 오류가 발생하는 메서드를 호출하려고했습니다. 이유는 무엇일까요? 사용중인 웹 서비스와 관련하여 문제가 있습니까?

+0

$의 범위는 공장이나 서비스에 –

답변

1

$http을 공장에 투입해야합니다. 그런 다음

app.factory('fetchEmpService', function ($http) { 
    .... 
}); 
+0

감사를 주사하지 않은 약속을 반환하고 컨트롤러 내부의 폐쇄 내부 $scope을 업데이트 할, 그 이유였다. –

+0

또한'$ scope'는 공장에서 주입 될 수 없으므로'$ scope.getEmployee()'함수는 팩토리 안에서 작동하지 않습니다 –

+0

함수에 $ scope도 삽입 할 수 있습니까? –

관련 문제