AngularJS サービス
- 前のページ AngularJS フィルタ
- 次のページ AngularJS Http
AngularJS では、独自のサービスを作成したり、多くの内蔵サービスの1つを使用できます。
サービスとは何ですか?
AngularJS では、サービスは関数やオブジェクトであり、AngularJS アプリケーション内で使用され、限定されます。
AngularJS には約30の内蔵サービスがあります。その1つは $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 アプリケーションで最もよく使用されるサービスの1つです。このサービスはサーバーにリクエストを送信し、アプリケーションが応答を処理するようにします。
实例
サーバーからデータをリクエストするための $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
関数。
实例
2秒後に新しいメッセージを表示する:
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