AngularJS ng-click، ng-show & ng-hide التوجيهات

⚡ ملخص ذكي

تتيح أحداث AngularJS لتطبيق الويب الاستجابة لمدخلات المستخدم مثل نقرات الماوس، وضغطات المفاتيح، وحركات التمرير. تربط التوجيهات، بما في ذلك ng-click وng-show وng-hide، هذا السلوك بشكل تصريحي في لغة الترميز بدلاً من الاعتماد على مستمعي DOM اليدويين.

  • 🖱️ معالجة النقرات: تقوم خاصية ng-click بربط تعبير أو دالة تحكم بعنصر، وغالبًا ما يكون زرًا.
  • 👁️ العرض المشروط: تقوم خاصية ng-show بعرض العنصر عندما يكون تعبيرها صحيحًا، بينما تقوم خاصية ng-hide بإزالته عندما يكون التعبير صحيحًا.
  • 🎨 آلية: كلا التوجيهين يقومان بتبديل فئة CSS المضمنة ng-hide، والتي تقوم بتعيين العرض إلى لا شيء، لذلك يبقى العنصر في DOM.
  • 🔗 نطاق الربط: يؤدي وضع متغير عضو في $scope إلى تحديد مستوى الرؤية، وتغييره داخل معالج الأحداث يؤدي إلى تحديث العرض على الفور.
  • 📋 نطاق التوجيه: تتضمن ثمانية عشر توجيهًا للمستمع أحداث التمويه والتغيير والتركيز ولوحة المفاتيح والماوس واللصق والإرسال.
  • ⚠️ حالة الدعم: وصل AngularJS إلى نهاية عمره الافتراضي في 31 ديسمبر 2021، لذلك يجب أن تستهدف المشاريع الجديدة Angular الحديث بدلاً من ذلك.

AngularJS انقر فوق ng-show ng-hide التوجيهات

أحداث AngularJS

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

عند إنشاء تطبيقات الويب، سيحتاج تطبيقك عاجلاً أم آجلاً إلى التعامل مع أحداث DOM مثل نقرات الماوس وتحريكه، وضغطات لوحة المفاتيح، وأحداث التغيير. AngularJS توفر هذه التعليمات توجيهات تتعامل مع هذه الأحداث بشكل تصريحي.

على سبيل المثال، إذا كان يجب على زر في الصفحة معالجة شيء ما عند النقر عليه، فإن توجيه حدث ng-click يوفر هذه الخاصية.

⚠️ إشعار الدعم: وصل AngularJS نهاية الحياة في 31 ديسمبر 2021 ولا يتلقى أي تحديثات أو إصلاحات أمنية إضافية من فريق Angular. تظل التوجيهات أدناه دقيقة لصيانة تطبيقات AngularJS 1.x الحالية؛ أما بالنسبة للمشاريع الجديدة، فيُرجى استخدام الإصدارات الحديثة. زاويحيث يتم استبدال هذه التوجيهات بروابط الأحداث مثل (click) و *ngIf.

ما هو التوجيه ng-click في AngularJS؟

استخدم "توجيه النقر فوق ng" في AngularJS، يتم تطبيق سلوك مخصص عند النقر على عنصر HTML. ويُستخدم عادةً مع الأزرار، لأنها أكثر الأماكن شيوعًا لإضافة استجابات النقر، كما يُستخدم أيضًا لإصدار تنبيهات عند النقر.

بناء جملة النقر ng في AngularJS

<element
 ng-click="expression">
</element>

مثال على النقر على ng في AngularJS

في هذا المثال الخاص بـ ng-click، يتم زيادة متغير العداد في كل مرة ينقر فيها المستخدم على زر.

نانوغرام انقر فوق التوجيه في AngularJS

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body ng-app="">

<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>

<button ng-click="count = count + 1" ng-init="count=0">
    Increment
</button>

<div>The Current Count is {{count}}</div>

</body>
</html>

Code التفسير:

  1. يقوم توجيه ng-init بتعيين المتغير المحلي count ل0.
  2. يزيد توجيه ng-click على الزر count بزيادة قدرها 1 في كل نقرة.
  3. الاستيفاء {{count}} يعرض القيمة الحالية للمستخدم.

الإخراج:

نانوغرام انقر في AngularJS

يظهر زر "زيادة" ويكون العدد في البداية صفرًا. يؤدي النقر عليه إلى زيادة القيمة، كما هو موضح في الصورة أدناه.

نانوغرام انقر في AngularJS

ما هو توجيه ng-show في AngularJS؟

استخدم توجيه ng-show يُظهر أو يُخفي شيئًا معينًا HTML يتم تحديد العنصر بناءً على التعبير المُمرر إلى السمة ng-show. داخليًا، يتم إظهار العنصر أو إخفاؤه عن طريق إزالة أو إضافة .ng-hide فئة CSS، وهي فئة مُعرَّفة مسبقًا تُحدِّد display إلى none.

بناء جملة ng-show في AngularJS

<element
 ng-show="expression">
</element>

مثال على ng-show في AngularJS

يستخدم هذا المثال ng-show لإظهار عنصر مخفي.

ng-show التوجيه في AngularJS

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
    <input type="button" value="Show Angular" ng-click="ShowHide()"/>

    <br><br><div ng-show="IsVisible">Angular</div>
</div>

<script type="text/javascript">

    var app = angular.module('DemoApp', []);

    app.controller('DemoController', function($scope) {
        $scope.IsVisible = false;

        $scope.ShowHide = function() {
            $scope.IsVisible = true;
        };
    });
</script>

</body>
</html>

Code التفسير:

  1. يشير توجيه ng-click الموجود على الزر إلى ShowHide الدالة المحددة في وحدة التحكم DemoController.
  2. تُضاف السمة ng-show إلى عنصر div الذي يحتوي على النص Angular. هذا هو العنصر الذي يتم التحكم في رؤيته.
  3. في وحدة التحكم، IsVisible يتم وضع متغير العضو في كائن النطاق وتهيئته إلى falseلذلك، يتم إخفاء العنصر div عند تحميل الصفحة لأول مرة. مع ng-show، تكون قيمة صحيح يعرض العنصر و زائف يخفيه.
  4. استخدم ShowHide مجموعات الوظائف IsVisible اجعل القيمة صحيحة حتى يصبح العنصر div مرئيًا.

الإخراج:

ng-show التوجيه في AngularJS

لا يظهر العنصر div الذي يحتوي على النص في البداية، لأن IsVisible يبدأ كخطأ. النقر عرض Angular يتم ضبطه على "صحيح" ويصبح النص مرئيًا.

ng-show التوجيه في AngularJS

ما هو توجيه ng-hide في AngularJS؟

استخدم نانوغرام إخفاء التوجيه يخفي العنصر عندما تكون قيمة تعبيره صحيحة (TRUE)، ويُظهره عندما تكون قيمة التعبير خاطئة (FALSE) - وهو عكس وظيفة ng-show تمامًا. ويستخدم داخليًا نفس .ng-hide فئة CSS.

بناء جملة ng-hide في AngularJS

<element
 ng-hide="expression">
</element>

مثال على ng-hide في AngularJS

هذا المثال يعكس مثال ng-show بحيث يمكن مقارنة التوجيهين بشكل مباشر.

ng-hide التوجيه في AngularJS

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Event Registration</title>
</head>
<body>
<script src="https://code.angularjs.org/1.8.3/angular.js"></script>

<h1>Guru99 Global Event</h1>
<div ng-app="DemoApp" ng-controller="DemoController">
    <input type="button" value="Hide Angular" ng-click="ShowHide()"/>

    <br><br><div ng-hide="IsVisible">Angular</div>
</div>

<script type="text/javascript">

    var app = angular.module('DemoApp', []);

    app.controller('DemoController', function($scope) {
        $scope.IsVisible = false;

        $scope.ShowHide = function() {
            $scope.IsVisible = true;
        };
    });
</script>

</body>
</html>

Code التفسير:

  1. يشير توجيه ng-click الموجود على الزر إلى ShowHide وظيفة في DemoController.
  2. استخدم ng-hide تم إرفاق السمة بالعنصر div الذي يحتوي على النص Angular.
  3. IsVisible يتم تهيئته إلى falseلأن هذا العنصر يستخدم ng-hide وليس ng-show، فإن القيمة false تعني أن العنصر div غير موجود. مرئي عند تحميل الصفحة لأول مرة.
  4. استخدم ShowHide مجموعات الوظائف IsVisible إلى صحيح، مما يخفي العنصر div.

الإخراج:

ng-hide التوجيه في AngularJS

يظهر العنصر div مبدئيًا لأن القيمة false مُمررة إلى ng-hide. النقر إخفاء الزاوية إذا تحقق الشرط، تختفي الكلمة.

ng-hide التوجيه في AngularJS

ng-show vs ng-hide vs ng-if: الاختلافات الرئيسية

تتحكم ثلاثة توجيهات في ظهور عنصر ما للمستخدم، ويؤثر اختيار أحدها على كلٍ من سلوك الصفحة وأداء العرض. التوجيهان الأولان يُبدّلان فقط فئة CSS، لذا يظل العنصر موجودًا دائمًا في الصفحة؛ أما التوجيه الثالث فيضيف العنصر نفسه أو يُزيله.

البعد نانوغرام المعرض ng-hide ng-if
العنصر مرئي عندما العبارة صحيحة التعبير خاطئ العبارة صحيحة
عنصر في DOM دائما دائما فقط طالما كان ذلك صحيحًا
الطريقة المستخدمة Togglفئة es .ng-hide Togglفئة es .ng-hide يُنشئ العنصر ويُدمره
نطاق الطفل يشترك في النطاق الأصل يشترك في النطاق الأصل إنشاء نطاق فرعي جديد
المراقبون عندما يكونون مختبئين لا تزال نشطة لا تزال نشطة إزالة
أفضل ل التبديل المتكرر للمحتوى الخفيف الظروف المعكوسة نادراً ما يتم عرض محتوى ثقيل.

استخدم ng-show أو ng-hide عندما يتغير وضع عنصر ما بشكل متكرر، لأن العنصر لا يُعاد بناؤه أبدًا، ولا يتطلب التغيير سوى تغيير الفئة. استخدم ng-if للأقسام المكلفة التي تُعرض نادرًا، لأن إزالة العنصر تُزيل أيضًا مراقبيه، مما يقلل من تكلفة التحديث في كل دورة.

توجيهات مستمع الأحداث AngularJS

يمكنك إضافة مستمعي أحداث AngularJS إلى عناصر HTML باستخدام واحد أو أكثر من هذه الأدوات. توجيهات:

  • نانوغرام-طمس
  • نانوغرام التغيير
  • نانوغرام انقر
  • نانوغرام نسخة
  • قطع نانوغرام
  • ng-dblclick
  • نانوغرام التركيز
  • ng-keydown
  • ng-الضغط على المفاتيح
  • ng-keyup
  • ng-mousedown
  • ng-mouseenter
  • ng-mouseleave
  • ng-mousemove
  • ng-mouseover
  • ng-mouseup
  • لصق نانوغرام
  • نانوغرام-إرسال

يقبل كل توجيه تعبيرًا، ويكون حدث المتصفح الخام متاحًا بداخله كـ $event عندما يحتاج المعالج إلى تفاصيل مثل المفتاح المضغوط أو إحداثيات النقر.

الأسئلة الشائعة

تجاوز الأماكن المحجوزة $event متغير، كما في ng-click="handle($event)"ثم يستقبل المتحكم الحدث الأصلي ويمكنه قراءة الهدف أو الإحداثيات أو استدعاء preventDefault.

تُنشئ ng-repeat نطاقًا فرعيًا لكل عنصر، لذا فإن تعيين قيمة أولية داخل المعالج يُحدِّث هذا النطاق الفرعي فقط. اكتب إلى خاصية كائن في النطاق الأصل، أو استخدم $parent، لجعل التغيير مرئياً في الخارج.

جزئيا. AI أدوات تحويل ng-click إلى (click) و ng-show إلى *ngIf بشكل موثوق، ولكن المنطق المعتمد على النطاق والروابط ثنائية الاتجاه تحتاج إلى مراجعة يدوية، لأن نطاق AngularJS ليس له مكافئ مباشر في Angular.

تستطيع المساعدات المدعومة بالذكاء الاصطناعي رصد الأسباب الشائعة بسرعة: وجود تطبيق ng-app مفقود، أو اسم وحدة تحكم لا يتطابق مع تسجيل الوحدة، أو خطأ إملائي في سمة التوجيه. ولا يزال الحل المقترح بحاجة إلى اختبار في المتصفح.

لا. يوفر AngularJS فقط ng-show و ng-hide و ng-if. لا يوجد توجيه ng-visible، واستخدامه لا يُحدث أي تأثير لأن AngularJS يتجاهل السمات غير المُعترف بها.

تلخيص هذه التدوينة بـ: