خدمات 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);
};
}]);
يمكنك استخدام عامل التصفية عند عرض قيم من كائن أو مصفوفة:
<ul>
<li ng-repeat="x in counts">{{x | myFormat}}</li>
</ul>