최신 웹 개발 튜토리얼
 

AngularJS서비스


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 서비스의 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 서비스의 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 16 진수로 숫자를 변환 :

app.controller('myCtrl', function($scope, hexafy ) {
    $scope.hex = hexafy .myFunc(255);
});
»그것을 자신을 시도

필터 내부 사용자 지정 서비스를 사용하여

당신이 서비스를 생성하고 응용 프로그램에 연결 한 후에는 모든 컨트롤러, 지시어, 필터의 서비스를 사용, 또는 다른 서비스 내부에 있습니다.

필터를 정의 할 때 필터 내부의 서비스를 사용하려면 종속성으로 추가 :

서비스 hexafy 필터에 사용 myFormat :

app.filter('myFormat',[ 'hexafy' , function( hexafy ) {
    return function(x) {
        return hexafy .myFunc(x);
    };
}]);
»그것을 자신을 시도

객체 또는 배열에서 값을 표시 할 때 필터를 사용할 수 있습니다 :

서비스 이름 만들기 hexafy :

<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>
»그것을 자신을 시도