لقد تعاملنا مع أشكال رد الفعل في أحد الدروس السابقة،
حيث قمنا بتمرين يتعامل مع أشكال رد الفعل،
وكيف نقوم بإنشائها،
ثم نقوم أيضًا ببعض التحقق من صحة النموذج الأساسي على أشكال تفاعلية.
سنستمر في الموضوع في هذا الدرس،
لأن الأشكال التفاعلية كما يوحي الاسم،
لها علاقة بالبرمجة التفاعلية كما كنت تتوقع.
الآن، تمكنك النماذج التفاعلية أيضًا من مشاهدة التغييرات في قيم عناصر النموذج،
باستخدام عنصر يمكن ملاحظته يجعل Angular متاحًا يسمى ValueChanges.
سنستفيد من ValueChanges التي يمكن ملاحظتها في هذا التمرين،
من أجل تتبع التغييرات على قيم
عناصر شكلها المختلفة ثم قم بتشغيل التحقق من صحة النموذج على الفور.
في هذا التمرين، سنقوم بمعظم التحقق من صحة النموذج في
الكود بدلاً من القالب نفسه،
كما فعلنا مع التحقق من صحة نموذج المفاعل في التمرين الثاني للنماذج التفاعلية.
الذهاب إلى الاتصال ب.component.tsfile،
سنقوم بتحديث النموذج التفاعلي الذي أنشأنا هنا،
عن طريق إضافة عدد قليل من المدققين لبعض هذه الحقول.
لذلك، هنا ترى أن الاسم الأخير الأول
ورقم الهاتف والبريد الإلكتروني قمنا بإضافة المصادقة المطلوبة.
بالنسبة للاسم الأول والأخير،
سأقوم بإضافة اثنين من المدققين للحصول على
الحد الأدنى للطول والحد الأقصى للطول.
الآن، إذا كان لديك أكثر من مدقق واحد في النموذج التفاعلي الخاص بك،
يجب عليك الإعلان عنها باستخدام مصفوفة هناك.
لذلك، هذا يجب أن تكون محاطة داخل صفيف هنا.
لذلك، ترى أنني قد أرفقت المدقق المطلوب داخل صفيف.
أنا ذاهب لإضافة في المدققين، مينلينغث المدقق.
لذلك، بالنسبة إلى الحد الأدنى للطول، سأحدد اثنين كالحد الأدنى للطول،
لذلك يجب أن يحتوي الاسم الأول على حرفين على الأقل.
أيضا الحد الأقصى للطول الذي
سأضيف 25 حرفا.
لذلك، هنا ترى أنه الآن للاسم الأول لدينا ثلاثة عمليات التحقق المختلفة،
وكلها محاطة في صفيف هنا.
المدققين المطلوبة، المدققين مينلينغث،
و المدققين ماكسلينغث هنا، 25.
لذا، سأفعل نفس الشيء أيضاً من أجل اسمي الأخير
لذلك، اسمحوا لي أن نسخ هذا كله المدققين راي هنا،
ومن ثم استبدال هذا واحد مع تلك المجموعة من المدققين.
الآن بالإضافة إلى ذلك، بالنسبة لرقم الهاتف،
كما تذكرون في الإصدار السابق من النموذج،
كان رقم الهاتف على استعداد لقبول حتى الحروف الهجائية،
ولكن هذا غير صحيح.
أرقام الهواتف عادة ما تكون أرقام.
لذا، هذا هو المكان الذي سنستخدم فيه مدقق آخر
يسمى «التحقق من صحة النمط».
لذا، يسمح لنا النمط المدقق بتحديد نمط
للقيم التي تم إدخالها في عنصر النموذج المعين هذا،
ثم تحقق للتأكد من أن القيمة تتبع النمط المحدد.
لذا، هنا النمط الذي سنستخدمه هو أن القيمة
يجب أن تحتوي فقط على أرقام بين صفر وتسعة.
لإضافة النمط،
نحتاج إلى القيام بذلك في ملف القالب كما سنرى في فترة قصيرة.
وبالمثل، بالنسبة للبريد الإلكتروني،
سيكون لدي أيضًا مدقق آخر يسمى باسم مدقق البريد الإلكتروني.
لذلك، سنقوم بإضافة في البريد الإلكتروني المدققين.
وهذا يعني أيضًا أننا بحاجة إلى إضافة سمة
تسمى البريد الإلكتروني إلى الإدخال في ملف القالب الخاص بنا.
الآن، مع هذه التغييرات، أصبح التحقق من صحة النموذج الآن أكثر قوة في هذا التمرين.
الآن، عندما يتغير النموذج في أي من عناصر شكله،
فإن إطار العمل Angular يوفر ملاحظة تسمى ValueChanges يمكن ملاحظتها.
لذلك، سأستخدم ValueChanges التي يمكن ملاحظتها في نموذج ملاحظاتي.
لذلك، فإن ValueChanges يمكن ملاحظتها.
لذلك، يمكن الآن الاشتراك في ValueChanges التي يمكن ملاحظتها ضمن هذه الطريقة المعينة.
لذلك عندما نقوم بإنشاء النموذج نفسه،
سوف نشترك في ValueChanges التي يمكن ملاحظتها هنا.
الآن، عندما ValueChanges،
وذلك من خلال الاشتراك في هذا ملحوظ،
ضمن الاشتراك سوف تحدد ما ينبغي القيام به عند ValueChanges.
لذلك، عندما ValueChanges سأحصل على بعض البيانات هنا،
من المزرعة للإشارة إلى
عنصر شكل معين قد شهد التغيير في القيمة.
ثم، عندما يحدث ذلك،
سأقوم بتشغيل طريقة محلية سأقوم بتنفيذها تسمى OnValueChanged،
ثم قم بتوفير تلك البيانات كمعلمة لهذه الطريقة.
الآن، داخل هذه الطريقة onValueChanged،
سأقوم ببدء التحقق من صحة النموذج،
ومن ثم تحديد رسائل خطأ النموذج بشكل مناسب استنادًا إلى ما
سيحدده كائن البيانات هذا الذي أحصل عليه هنا لي.
بالإضافة إلى ذلك، عندما أقوم بإنشاء النموذج لأول مرة،
سأتصل بطريقة OnValueChanged بدون أي معلمة،
وسيتم استخدام هذا لإعادة
تعيين رسائل التحقق من صحة النموذج.
الآن، كيف يمكنني إنشاء رسائل التحقق من صحة النموذج؟
للقيام بذلك، سأقوم بتعريف رسائل التحقق من صحة النموذج بالكامل في التعليمات البرمجية هنا.
ثم من خلال التعليمات البرمجية،
وسوف التكيف مع رسائل التحقق من صحة النموذج،
والتي سيتم استخدامها بعد ذلك لعرض رسائل الخطأ في قالب النموذج الخاص بي نفسه.
لذلك للقيام بذلك، ما سأقوم به هو إضافة بعض كائنات جافا سكريبت هنا.
يسمى أحد كائنات JavaScript التي سأقوم بإضافتها كأخطاء في النموذج.
لذلك، هذا هو كائن جافا سكريبت بسيط
يحتوي على جميع الأخطاء لنموذج معين هنا.
لذلك ضمن أخطاء النموذج،
سأستخدم أربعة حقول مختلفة،
الاسم الأول، الاسم الأخير.
لذلك كما تتذكر،
هذه تتوافق مع عناصر النموذج الأربعة التي أقوم بها التحقق من صحة النموذج
ورقم الهاتف والبريد الإلكتروني.
الآن، لماذا أقوم بتعريف كائن جافا سكريبت هذا هنا؟
الآن، يحتوي كائن جافا سكريبت هذا كما ترى على أربعة عناصر هنا.
الآن، كلما أفعل التحقق من صحة النموذج،
تذكر أنني حددت بالفعل
أنني سأقوم بإنشاء طريقة جديدة تسمى OnValueChange.
داخل onValueChange، الطريقة التي تتم بها كتابة التعليمات البرمجية هي أنه في
حالة اكتشاف أي خطأ،
ستتم إضافة سلسلة تحتوي على الرسالة المقابلة لهذا الخطأ إلى كائن JavaScript هذا.
لذا، بهذه الطريقة داخل شفرتي،
يمكنني إجراء التحقق من صحة النموذج.
الآن، بالإضافة إلى ذلك،
سأحدد الآن بعض رسائل التحقق من الصحة.
الآن، هذا النمط الخاص من القيام بالأشياء،
تعلمت من خلال قراءة الوثائق على التحقق من صحة النموذج في موقع angular.io.
لذلك، لديهم وثائق كاملة حول كيفية القيام التحقق من صحة النموذج ورابط الذي
يتوفر في الموارد الإضافية
لهذا الفصل وأيضا الفصول السابقة على الأشكال الزاوي.
لذلك، هناك في هذه الوثيقة معينة أنها
تصف هذا كوسيلة للقيام التحقق من صحة النموذج ووجدت أن تكون بديهية جدا.
لذلك، اعتمدت أيضا نفس النمط للقيام التحقق من صحة النموذج في التعليمات البرمجية.
لذلك، جنبا إلى جنب مع هنا،
وأنا ذاهب لتحديد رسائل التحقق من الصحة لجميع الحقول الممكنة هنا.
لذلك، بالنسبة لحقل الاسم الأول،
سأحدد بعض رسائل التحقق من الصحة هنا، لذلك أود أن أقول،
«مطلوب» ثم أقول،
«الاسم الأول مطلوب» مثل هذا،
وسوف أضيف في بعض رسائل التحقق من الصحة
هنا ويقول،
«يجب أن يكون الاسم الأول
على الأقل 2 أحرف طويلة» وبعد ذلك سوف إضافة أيضا،
«أقصى طول» والرسالة المقابلة ستكون،
«الاسم الأول لا يمكن أن يكون أكثر من 25".
إذا كان لديك اسم يصل إلى 25 حرفا،
يجب أن تكون حقا لعن والديك على ذلك، صدقوني،
واحدة من اسمي الأوسط هو اسم طويل،
والتي لا أستخدمها صراحة في وثائقي.
ولكن، أستطيع أن أفهم الألم،
إذا كان لديك اسم طويل أكبر من 25 حرفا.
الناس من بعض الولايات في الجزء الجنوبي من الهند لديهم أسماء طويلة،
وتشمل ولايتي، مهلا،
دعونا الحصول على بعض المرح بينما نحن في ذلك.
حسناً، سأقوم أيضاً بتضمين نفس الشيء للإسم الأخير
لذلك، سأقوم بتحرير هذا
وتحديد نفس الشيء مثل الاسم الأخير.
لذلك، كما ترى داخل التعليمات البرمجية يمكنك تحديد مجموعة من رسائل الخطأ.
الآن، إذا قمت بإضافة التحقق من صحة جديدة إلى النماذج الخاصة بك،
كل ما عليك القيام به هو،
تعال هنا وإضافة رسالة الخطأ الجديدة إلى
كائن جافا سكريبت هذا هنا وسوف تعمل التعليمات البرمجية الخاصة بك على ما يرام، على هذا النحو.
لذلك، هذه هي ميزة استخدام هذا النمط لتصميم التحقق من الصحة في التعليمات البرمجية.
استمرار، اسمحوا لي أن تحديد التحقق من صحة رقم الهاتف
واثنين من التحقق من صحة أرقام الهاتف التي من شأنها أن تحدث هو «مطلوب».
لذا، سأقوم فقط بنسخ «مطلوب» من هناك،
ولصقه هنا،
وأود أن أقول،
«رقم الهاتف مطلوب»، وستكون رسالة الخطأ التالية لـ «نمط».
لذلك، رسالة الخطأ تقول،
«يجب أن يحتوي رقم الهاتف على أرقام فقط.»
لذلك، هذه هي الرسالة الأخرى، وبالمثل للبريد الإلكتروني.
لذلك، كما ترون القيم التي أستخدمها هنا
هي المقابلة لأسماء المدقق التي استخدمتها،
«منتصف الطول»، «الحد الأقصى للطول المطلوب»، «نمط».
لذلك، وبالمثل بالنسبة للبريد الإلكتروني،
سترى «مطلوب» و «البريد الإلكتروني».
لذلك، أنا فقط ذاهب لنسخ «مطلوب» أكثر من هنا ويقول، «البريد الإلكتروني مطلوب».
النمط الآخر كما تتذكر هو للبريد الإلكتروني وأود أن أقول،
«البريد الإلكتروني ليس في شكل صالح».
لذلك، عادة إذا كان بريدك الإلكتروني لا
يحتوي على علامة @ وحروف على جانبي علامة @،
فهذا ليس بريدًا إلكترونيًا صالحًا.
تم تضمين هذا البريد الإلكتروني المدقق بالفعل في وحدة النماذج التفاعلية الزاوي.
لذلك، سنستفيد من البريد الإلكتروني المدقق هنا.
لذلك، هنا لدينا جميع رسائل التحقق من الصحة المحددة في التعليمات البرمجية.
لذا، فإن ذلك يجعل من السهل جدًا توسيعها لحقول إضافية إذا كنت تحتاج
وإضافة المزيد من رسائل التحقق من الصحة لعمليات التحقق الإضافية
التي قد تقدمها لكل حقل من حقول النموذج هذه.
أيضا، هذه الأخطاء شكل الكائن يساعدني على تتبع
جميع الأخطاء المرتبطة بكل عنصر من العناصر في هاتفي.
لذلك، أنا حاليا تحقق فقط هذه العناصر الأربعة،
لذلك لهذا السبب لدي فقط لذلك.
تصحيح طفيف، يجب أن يكون «منتصف الطول» دقيقة،
صغيرة «l» والحد الأقصى للطول أيضا مع «l» صغير،
وبالمثل بالنسبة للاسم الأخير أيضا.
الآن، دعونا نكتب التعليمات البرمجية لطريقة تغيير القيم.
لذلك، أنا ذاهب لكتابة الطريقة
هنا، «ValueChanged» ومن ثم هذا
سوف يستغرق في معلمة، ربما.
هذا هو السبب في أنني وضعت علامة استفهام البيانات،
وهذا يعني أن المعلمة اختيارية.
لذلك، فإن أول شيء سوف تحقق هو، «هذا النموذج ردود الفعل»،
مما يعني أنه إذا لم يتم إنشاء نموذج ردود الفعل ثم،
وإذا تم استدعاء هذه الطريقة،
ثم يجب عليك ببساطة «العودة» دون أي شيء.
بعد ذلك، سأحدد
ثابتًا يسمى «
نموذج التعليقات هذا» هو فقط لتسهيل تحديد بقية الشفرة،
ثم أود أن أقول، «
لحقل const في هذه الأخطاء.
لذلك، لاحظ أن هذا الحقل سوف تأخذ هذه الأخطاء.form،
كائن أخطاء النموذج الذي حددناه في وقت سابق.
لذلك، يشعر يعني أنني سوف تحقق من كل أربعة.
لذلك، كلما اكتشفت أي تغييرات،
الاسم الأول، الاسم الأخير،
رقم الهاتف والبريد الإلكتروني.
لذلك، هذا هو السبب في أن هؤلاء الأربعة سوف تحمل نفس الأسماء بالضبط كما استخدمناها في النموذج هنا،
وحتى أن التعليمات البرمجية المكتوبة هنا سوف تكون مباشرة للعمل مع.
لذلك، أنا ذاهب الآن للتحقق من حقول النموذج.
ثم، أود أولا
التأكد من أنه في حال قمت في وقت سابق بإرفاق أي رسائل إلى حقول النموذج هذه،
شكل أخطاء الكائن هناك،
ثم أنا ذاهب لمسح كل منهم.
لذلك، لهذا السبب إذا قمت باستدعاء هذا بدون معلمة،
فسيتم مسح جميع حقول خطأ النموذج،
ثم سأفعل، «التحكم في FormGet».
لذلك، لاحظ أنني أستخدم هذا الحقل نفسه للقيام فورماجيت لذلك،
أنا الحصول على الوصول إلى هذا الحقل نموذج معين.
لذلك، لاحظ أنه في وقت سابق كنا نفعل «feedbackform.this.feedbackform.get" firstname».
وما إلى ذلك. لذا، قمت بتبسيط ما في هذا الثابت المحدد الذي
حددناه هنا وبعد ذلك سأقول، «إذا كانت السيطرة».
لذلك، مما يعني أنه إذا كانت السيطرة ليست فارغة و «control.dirt».
لذلك، إذا كان هذا الحقل المعين قذرًا بالفعل
وليس «التحكم صالح».
لذا، يعني أنه لكل حقل من الحقول،
أقوم بالتحقق حرفياً لمعرفة ما إذا كان صالحًا،
إذا كان قذرًا،
ثم إذا كان عنصر التحكم موجودًا بالفعل.
ثم، أنا ذاهب للتحقق لمعرفة أي نوع من الأخطاء تمت إضافتها إلى
هذا التحكم معين من قبل النموذج هناك.
لذلك، هنا سأقول،
«رسائل const
تساوي حقل رسائل validation هذا».
لاحظ كيف أنا التقاط
جميع رسائل التحقق من الصحة المقابلة لهذا الحقل معين الاسم الأول،
اسم العائلة، أو telnum أو البريد الإلكتروني،
وبعد ذلك سوف تحقق ومعرفة ما إذا كنت بحاجة إلى إضافة هذا في الحقل.
إذاً، كيف أفعل ذلك؟
لذلك، نحن نفعل مفتاح كونست في control.errors.
لذلك، لاحظ أن عنصر التحكم هذا هو form.get field و.error،
لذلك أنا التحقق لمعرفة ما إذا كان هناك أي أخطاء هناك.
ثم، في هذه الحالة،
سأضيف حقل أخطاء النموذج هذا.
لذلك، بالنسبة لهذا العنصر المحدد في كائن جافا سكريبت الذي قمت بتعريفه هنا،
أود إضافة مفتاح الرسائل
بالإضافة إلى الفضاء هنا.
لذلك، الآن أي مسح خطأ النموذج
أو الرسالة المقابلة سيتم اتخاذها وإرفاقها،
وبعد ذلك سوف يحتوي كائن جافا سكريبت أخطاء النموذج الخاص بي الآن على
جميع رسائل الخطأ المرفقة معا عندما
هذا معين على القيم تغيير الفئران الأسلوب.
الآن، هذه القطعة الخاصة من التعليمات البرمجية لقد اقترضت من
وثائق التحقق من صحة النموذج على angular.iu.
لقد وجدت أن هذه طريقة بديهية للغاية للقيام بالتحقق من أخطاء النموذج.
لذلك، فكرت لماذا لا تستفيد من ذلك في ممارسة الأشكال التفاعلية الزاوي.
لذلك، إضافة هذا الرمز هناك.
الآن، طلبي جاهز لإجراء التحقق من صحة النموذج لنموذج رد الفعل الخاص بي.
لذلك، الآن الخطوة التالية هي الانتقال إلى component.html جهة الاتصال،
ملف القالب، ثم قم بتحديث ملف القالب.
لذلك، انتقل إلى ملف القالب هذا،
سنذهب الآن إلى النموذج،
وفي هذا النموذج الآن بدلاً من القيام بكل هذه الشيكات في التعليمات البرمجية،
يمكننا الآن تبسيط الكثير من التعليمات البرمجية هنا في ملف القالب هنا.
الآن، بدلاً من القيام بكل هذه الفحوصات،
ما ندركه هو أن كائن جافا سكريبت أخطاء النموذج في
ملف typescript الخاص بي إذا كانت هناك أخطاء،
فإن كائن JavaScript الخاص بأخطاء النموذج لهذا الحقل المعين،
سيكون له كل رسائل الخطأ المرفقة به.
إذا لم تكن هناك أخطاء،
فلن تكون رسائل الخطأ هذه موجودة.
لذلك، هذا هو ما سأستخدمه للتحقق
ومعرفة ما إذا كان يجب عرض خطأ النموذج أم لا.
لذلك، لهذه المسألة بدلا من التحقق من كل هذا،
الشيء الوحيد الذي أحتاج إلى التحقق هنا هو فورميرورس الاسم الأول، هذا كل شيء.
لذلك، من السهل جدا للتحقق من وجود أخطاء هنا.
وبالمثل، حتى يتم تبسيط هذا الرمز كله الآن هنا،
وبالمثل عند التحقق من الرسالة هنا،
ما سنقوم به، وأنا ذاهب لتغيير هذا الشيء كله من
المطلوب لمست إلى formerrors.firstName.
هذا كل شيء إذا كان ذلك موجودًا،
فستكون جميع رسائل الخطأ المقابلة لهذا موجودة بالفعل،
لذلك أحتاج فقط إلى إجراء الاستيفاء
ثم عرض Formerrors.firstName هنا،
بهذه البساطة.
الآن، ترى من خلال القيام
بجميع التحقق من صحة خطأ النموذج ورمز والقيام بجميع الشيكات وهلم جرا في التعليمات البرمجية،
كنت قد بنيت بالفعل رسائل الخطأ التي نحتاج إلى عرضها.
كل ما نقوم به هو أن نأخذ رسالة الخطأ هذه ثم نضع
هذا في القالب هنا، هذا كل شيء.
يصبح رمز القالب أكثر تبسيطًا في هذه الحالة بالذات،
وأيضًا من خلال إجراء التحقق من صحة النموذج باستخدام شفرة typescript،
قمنا بتبسيط القالب هنا في نفس الوقت يمكننا إجراء
التحقق من صحة النموذج الأكثر تعقيدًا في شفرة typescript الخاصة بنا.
أنا ذاهب للمضي قدما والقيام بنفس النوع من التغييرات على الحقول المتبقية هنا،
وذلك لحقل اسم العائلة،
وأنا ذاهب إلى استبدال مرة أخرى كل هذا مع Formerrors.lastName.
الآن، مرة أخرى تفعل الشيء نفسه لرقم الهاتف.
الآن، مرة أخرى كما ترون هيكل القالب يصبح جدا،
موحدة جدا في هذه الحالة.
لذا، هذه أيضًا طريقة أخرى لتبسيط
بنية القالب الخاص بك مع الاستمرار في حقل البريد الإلكتروني هنا.
سأقوم بنفس التغيير في حقل البريد الإلكتروني أيضًا.
لذلك، أود أن أقول Formerrors.Email
واستبدال هذا عن طريق formatters.email.
كما ترون،
فقد تم تبسيط رمز القالب الخاص بك بشكل ملحوظ مقارنة مع السابق.
مع هذا
تمت إضافة كل التحقق من صحة الخطأ الذي أطلبه إلى القالب الخاص بي ويتم تحديث القالب الخاص بي الآن،
لذلك دعونا حفظ التغييرات.
شيئان آخران أحتاج إلى إضافتهما هما سمة
تسمى البريد الإلكتروني إلى هذا الحقل المحدد يسمى البريد الإلكتروني.
لذلك، تذكر أننا أضفنا البريد الإلكتروني المدقق هنا.
لذلك، جنبا إلى جنب مع المطلوب،
وأنا ذاهب لإضافة البريد الإلكتروني أيضا إلى حقل الإدخال هنا.
وبالمثل، بالنسبة للتلنوم،
نستخدم النمط هناك.
لذلك، أنا ذاهب لإضافة في نمط لذلك هذا هو حقل الإدخال ل telnum.
لذا، داخل حقل الإدخال سأقوم بإضافة نمط يساوي
والنمط الذي سأقوم بإضافته هو
داخل أقواس مربعة صفر إلى تسعة،
ثم وضع نجمة هناك.
لذلك، مما يعني أن هذا هو أي شيء صفر إلى تسعة تكرار عدة مرات.
لذلك، يمكن أن يحتوي رقم الهاتف على أي أرقام بين صفر وتسعة.
أي عدد من تلك الأرقام
يمكنك أيضًا وضع minlength و maxlength على حقل telnum
إذا كان رقم الهاتف في بلدك الخاص يحتوي على تنسيق ثابت،
فيمكنك القيام بذلك أيضًا.
لذلك، يمكن القيام بذلك بسهولة.
ولكن، في هذا التمرين،
لم أضف في تقييد minlength و maxlength لـ telnum هنا.
الآن، بعد أن قمنا بجميع التحديثات،
دعونا حفظ التغييرات ثم نذهب ونلقي نظرة على النموذج في المتصفح.
الذهاب إلى المتصفح الآن،
دعونا التمرير لأسفل إلى النموذج هنا.
دعونا نكتب في الاسم الأول وكما ترى عند كتابة حرف واحد فقط،
ثم يتم عرض رسالة الخطأ على الفور،
ولكن في اللحظة التي تكتب في أحرف إضافية سوف تختفي رسالة الخطأ.
وبالمثل، للاسم الأخير.
بالنسبة لرقم الهاتف، إذا حاولت كتابة أي شيء آخر غير الأرقام،
فستعرض رسائل الخطأ.
لذلك، يمكنك الكتابة،
وبالمثل للبريد الإلكتروني، بحيث ترى أن البريد الإلكتروني غير صالح سيتم عرض تنسيق.
إذا لم يكن لديك البريد الإلكتروني ثم يظهر أيضا رسالة الخطأ.
ولكن، لحظة كتابة شيء من هذا القبيل،
ثم يعتبر هذا تنسيق بريد إلكتروني صالح لذلك سيتم قبوله.
لذلك، هذه هي مجموعة رسائل الخطأ والتحقق من صحة النموذج
يتم تماما في التعليمات البرمجية كما هو الحال في هذا التمرين بالذات.
لذلك، مع هذا، ونحن استكمال هذا التمرين.
في هذا التمرين، رأينا استخدام تغيير القيمة يمكن ملاحظته،
ورأينا أيضًا كيف يمكننا القيام بالتحقق من صحة النموذج في شفرة typescript الخاصة بنا.
و هذا يكمل هذا التمرين.
هذا هو الوقت المناسب بالنسبة لك للقيام جيت الالتزام مع
رسالة رد الفعل أشكال الجزء الثالث.