AngularJS Services
- Previous Page AngularJS Filters
- Next Page 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 παρακολουθεί συνεχώς την εφαρμογή σας, προτιμώντας να χρησιμοποιείτε $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); });
Using Custom Services in Filters
After creating the service and connecting it to your application, you can use this service in any controller, directive, filter, or even other services.
To use a service in a filter, add it as a dependency when defining the filter:
The service used in the filter myFormat: hexafy
app.filter('myFormat',['hexafy', function(hexafy) { return function(x) { return hexafy.myFunc(x); }; });
You can use this filter when displaying values in objects or arrays:
<ul> <li ng-repeat="x in counts">{{x | myFormat}}</li> </ul>
- Previous Page AngularJS Filters
- Next Page AngularJS Http