AngularJS 서비스
- 이전 페이지 AngularJS 필터
- 다음 페이지 AngularJS Http
AngularJS에서는, 자신의 서비스를 생성하거나, 많은 내장 서비스 중 하나를 사용할 수 있습니다.
서비스는 무엇인가요?
AngularJS에서, 서비스는 함수나 객체로 사용되며, AngularJS 애플리케이션에서만 사용할 수 있습니다.
AngularJS는 약 30개의 내장 서비스를 가지고 있습니다. 중 하나는 $location
서비스.
$location
서비스는 현재 웹 페이지 위치에 대한 정보를 반환할 수 있는 메서드를 가지고 있습니다:
예제
컨트롤러에서 $location 서비스 사용:
var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $location) { $scope.myUrl = $location.absUrl(); });
주의하세요:$location
서비스는 컨트롤러에 파라미터로 전달됩니다. 컨트롤러에서 서비스를 사용하려면, 의존성으로 정의해야 합니다.
서비스를 사용하는 이유는 무엇인가요?
많은 서비스(예를 들어 $location
서비스를 사용하여, DOM에 이미 존재하는 객체(예를 들어 window.location 객체),하지만 일부 제한이 있을 수 있습니다. 적어도 AngularJS 애플리케이션의 경우입니다.
AngularJS는 계속해서 애플리케이션을 모니터링하며, 변경과 이벤트를 올바르게 처리하도록 하기 위해, AngularJS는 다음과 같이 사용하는 것을 좋아합니다: $location
서비스 대신 window.location 객체를 사용합니다.
$http 서비스
$http
서비스는 AngularJS 애플리케이션에서 가장 자주 사용되는 서비스 중 하나입니다. 이 서비스는 서버에 요청을 보내고, 응답을 애플리케이션에서 처리하도록 합니다.
예제
서버에서 데이터를 요청하는 $http 서비스 사용:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) { $http.get("welcome.htm").then(function (response) { $scope.myWelcome = response.data; }); });
이 예제는 $http
서비스는 매우 간단하게 사용됩니다. $http 서비스에 대해 더 많은 정보는 AngularJS Http 교육을 참조하세요。
$timeout 서비스
$timeout
서비스는 AngularJS 버전의 window.setTimeout
함수.
예제
두초 후에 새 메시지를 표시합니다:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $timeout) { $scope.myHeader = "Hello World!"; $timeout(function () { $scope.myHeader = "How are you today?"; }, 2000); });
$interval 서비스
$interval
서비스는 AngularJS 버전의 window.setInterval
함수.
예제
초마다 시간을 표시합니다:
var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $interval) { $scope.theTime = new Date().toLocaleTimeString(); $interval(function () { $scope.theTime = new Date().toLocaleTimeString(); }, 1000); });
자신의 서비스를 생성하세요
자신의 서비스를 만들기 위해, 서비스를 모듈과 연결하세요:
이름이 hexafy
서비스:
app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } });
사용자 정의 서비스를 사용하려면, 컨트롤러 정의 시 그를 의존성으로 추가하세요:
예제
이름이 hexafy인 사용자 정의 서비스를 통해 숫자를 십육진수 숫자로 변환합니다:
app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); });
필터에서 사용하는 사용자 정의 서비스
서비스를 생성하고应用程序에 연결한 후, 어떤 컨트롤러, 지시, 필터 또는 다른 서비스에서도 사용할 수 있습니다.
필터를 정의할 때 서비스를 의존으로 추가하여 서비스를 사용하려면:
필터 myFormat에서 사용하는 서비스 hexafy:
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }); });
표시되는 객체나 배열의 값을 표시할 때 이 필터를 사용할 수 있습니다:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- 이전 페이지 AngularJS 필터
- 다음 페이지 AngularJS Http