ล่าสุดการพัฒนาเว็บบทเรียน
 

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 การแปลงตัวเลขเป็นเลขฐานสิบหก:

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>
ลองตัวเอง»