"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استخدام $on و $broadcast لاتصالات الأحداث في Angular؟

كيفية استخدام $on و $broadcast لاتصالات الأحداث في Angular؟

تم النشر بتاريخ 2024-11-08
تصفح:461

How to Use $on and $broadcast for Event Communication in Angular?

الاتصال بالحدث في Angular: $on و $broadcast

في Angular، يعد الاتصال بالحدث أمرًا بالغ الأهمية لتنسيق التفاعلات بين الأجزاء المختلفة للتطبيق . تعد $on و$broadcast آليات Angular أساسية تتيح البث الفعال والتعامل مع الأحداث عبر المكونات.

فهم $on و$broadcast

  • ]$broadcast: ينبعث من نطاق لإخطار جميع أحفاده (النطاقات الفرعية) والسلسلة الأصلية للنطاق لحدث معين.
  • $on: مسجل بواسطة نطاق ل الاستماع لأحداث معينة يتم بثها من النطاق الحالي، أو نطاقاته الأصلية، أو نطاقاته الفرعية.

تنفيذ اتصال الحدث في مثالك

في حالتك، تريد أن يؤدي حدث النقر في وحدة تحكم التذييل إلى تشغيل حدث يمكن معالجته بواسطة وحدة تحكم الماسح الضوئي للكود. لتحقيق ذلك:

1. المذيع (footerController):

    استخدم $rootScope لبث الحدث، لأنه يشمل جميع النطاقات في التطبيق.
  • حدد وظيفة مثل ما يلي في footerController:
$scope.startScanner = function() { $rootScope.$broadcast('scanner-started');
$scope.startScanner = function() {
    $rootScope.$broadcast('scanner-started');
}

2. جهاز الاستقبال (codeScannerController):

    استخدم $on للاستماع إلى حدث البث في codeScannerController:
$scope.$on('scanner-started' وظيفة (الحدث، الحجج) { // المنطق الخاص بك هنا });
$scope.$on('scanner-started', function(event, args) {
    // Your logic here
});

قدرات إضافية:

يمكنك تمرير الوسائط عند بث الأحداث باستخدام $broadcast('event-name', { Any: {} } ).
  • وبالتالي، يمكنك تلقي هذه الوسائط في معالج الأحداث الخاص بالمتلقي.
  • الوثائق المرجعية:

لمزيد من المعلومات التفصيلية، راجع وثائق Angular الرسمية حول النطاقات: https://docs.angularjs.org/api/ng/type/$rootScope.Scope

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3