PracticU

Reactive Form - Dynamic Validators

בלי כתוביותעם כתוביות
PracticU › קורס אנגולר 4 עם Angular - WebAPI › Reactive Form - Dynamic Validators
מילון מושגים:
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
מערך - מבנה נתונים שמאחסן אוסף ערכים מאותו סוג ברצף, שאפשר לגשת אליהם לפי מספר מיקום (אינדקס).
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
תבנית - מבנה בסיסי מוכן שממנו יוצרים פריטים דומים, כמו תבנית עמוד או תבנית מסמך.

Reactive Form - Dynamic Validators
כשהלקוח בוחר איך לקבל התראות, השדות שחייבים להיות מלאים משתנים. בהרצאה הזאת מוסיפים ומורידים ולידטורים בצורה דינמית לפי בחירה ברדיו בטון, כך שאין שגיאות על שדות שאינם רלוונטיים.
השלבים העיקריים
1. רדיו בטון לבחירה: מוסיפים שתי תוויות עם class="radio-inline", ושני הרדיו בטון מקבלים את אותו שם. השם המשותף הוא מה שמשייך אותם לקבוצה אחת, כך שבוחרים רק אחד מהם.
2. פונקציה שמעדכנת את הוולידטורים: setNotification עובר על מערך הטלפונים בלולאת for...of, על הערכים ולא על האינדקסים. אם נבחר טלפון, מוסיפים לכל קונטרול Validators.required באמצעות setValidators. אם נבחר אימייל, מורידים את הוולידטורים באמצעות clearValidators.
3. עדכון הבדיקה: אחרי כל שינוי בוולידטורים קוראים ל-updateValueAndValidity, כדי שהבדיקה תרוץ שוב על השדות.
4. אותו עיקרון על כל FormControl: אפשר להפעיל setValidators על כל קונטרול בנפרד, לא רק על מערך.
5. העברת הלוגיקה לקלאס: בתחילה הפעלת הפונקציה נעשתה בלחיצה ב-HTML. בהמשך מאזינים ל-valueChanges של הקונטרול בקלאס, ומפעילים את הפונקציה עם הערך שנבחר. כך התבנית נשארת נקייה, והכל נשלט מהקוד.
שימו לב
- כשבוחרים טלפון ומשאירים שדה ריק, מופיעה שגיאה. כשעוברים לאימייל השגיאה נעלמת.
- אפשר להפעיל דיבאגר בתוך ה-subscribe ולעבור שורה אחרי שורה, כדי לראות איזה ערך הגיע.
בזה נגמרת הדוגמה: הוספה והורדה דינמית של ולידטורים לפי בחירה, וקבלת ערכים בזמן אמת מהקונטרול.
השיעור הבא בקורס: Reactive Form - Custom Validators

פרקי ההרצאה: Reactive Form - Dynamic Validators

  1. 00:00

    הוספה והסרה דינמית של ולידטורים

  2. 00:39

    בחירת אופן ההתראה בכפתורי רדיו

  3. 01:27

    מעבר על רכיבי הטלפון בלולאה

  4. 02:03

    הוספת ולידטור required לרכיבים

  5. 02:42

    ניקוי הוולידטורים ועדכון מחדש

  6. 03:33

    כפתורי רדיו של טלפון ואימייל

תמלול ההרצאה: Reactive Form - Dynamic Validators

הטקסט המלא של הדקות הראשונות בהרצאה «Reactive Form - Dynamic Validators» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם בהרצאה הזאת אני רוצה ללמד אתכם איך להוריד ולהוסיף ולידטורים בצורה דינמית נניח אני רוצה לבחור איך הלקוח מקבל התראות או אימייל או טלפון או סמס אם הוא מקבל בסמס אז אני רוצה ולידטור required שזה שדה חובה הטלפון ואם הוא מקבל באימייל אני לא רוצה שזה יהיה שדה חובה שהדבר הזה יימחק מפה השאלה זה איך לעשות מחיקה אוטומטית של ולידטורים

  2. 00:30

    מרכיב אז אנחנו נעשה דבר כזה, נעשה קודם כל משהו שהוא יוכל לבחור validation type form controller וזה יהיה בעצם new form controller רכיב רגיל, יופי עשינו רכיב שהוא בוחר רדיו בטון האם הוא רוצה את זה או את זה אנחנו רוצים לעשות פונקציה אחרי שהוא יבחר זה יהיה רדיו בטון שהוא בוחר מה הוא רוצה אנחנו רוצים

  3. 00:53

    להריץ פונקציה set נוטיפיקיישן נוטיפיי ביי וכאן אנחנו בעצם נקבע איך הנוטיפיקיישן עובד אם הוא עובד דרך טלפון אז אנחנו רוצים להוסיף לכולם required אם הוא עובד דרך אימייל אנחנו רוצים להוריד לכולם את ה-required אז יהיה לי פה רדיו בטון זה יהיה רדיו בטון וכשלוחצים על הרדיו בטון אז

  4. 00:56

    הוא מפעיל את הפונקציה הזאת והפונקציה הזאת עוברת על המערך ומוסיפה לזה required או מורידה לזה ל-required איך לעבור על המערך קודם כל נגנוב את המשתנה המקומי.

  5. 01:27

    ככה קיבלנו גישה לכל ה-array, ועכשיו אנחנו צריכים פה בפנים לרוץ על כל ה-array, for in, ככה. קודם כל אני לא רוצה את זה in, אני רוצה את זה off.

  6. 01:37

    in רץ על הערכים 0, 1, 2, ו-off רץ על ה-values, לא על האינדקסים. נעשה את זה טלפון קונטרול, זה למעשה כמו שעשינו פה.

  7. 01:47

    שזוכרים כאן, רצנו על כל המערך של הטלפונים בלולאה? אותו דבר אני עושה, אני רץ על כל הטלפונים, כל הרכיבים של הטלפון בלולאה כמו שעשינו את זה בשכפולה עכשיו אני רץ עוד פעם על כל ה-aray הזה נקודה controls אני רץ עליו ומה אני עושה עבור כל טלפון אם זה טלפון אני עושה לו set validator set

  8. 02:10

    validators ומוסיף לו validator required זאת אומרת שאם בחרת התראות דרך טלפון או דרך sms אז מספר טלפון שלך הוא required אני רץ על כל המערך של ה-aray ומוסיף לכולם validator required זה הכל דבר היחיד שאני צריך לעשות עוד משהו בגלל שהוספתי לו ולידטור אני צריך להריץ פונקציה שתעשה update על כל הוולידטורים שקשורים כי

  9. 02:34

    הוספתי לו ולידטור חדש אז ברגע שאני מוסיף ולידטור חדש אני רוצה שיעשה לי בדיקה חוזרת אותו דבר כאן אני אעשה אותו דבר כאן אני ארוץ על כל הרכיבים רק במקום set ולידטורס אני עושה פה clear ולידטורס אז בן אדם בוחר איך הוא רוצה את זה ודיפולט ניתן לו טלפון בן אדם בוחר איך הוא רוצה את הוולידציה.

  10. 02:57

    אם הוא בוחר טלפון, אני רץ על כל המערך של טלפונים ומכניס לכולם Required. עכשיו שימו לב, אני יכול לעשות את ה-Set ולידטור על כל רכיב בנפרד.

  11. 03:06

    יכלתי גם לקחת רכיב סתם Address Form Control ולעשות לו Required. זאת אומרת, ה-Set ולידטורס עובד על כל אחד שהוא פורם קונטרול, אוקיי? בגלל שזה פורם קונטרול, אז זה עובד לנו.

  12. 03:19

    אתם כבר לא מפחדים? מרצים על כל המערך של הטלפונים ומשיכים להם ערך או מורידים להם ולידטור. ככה אנחנו מוסיפים ומורידים ולידטורים דינמית.

  13. 03:29

    עכשיו נשאר לנו רק לעשות רדיו בטון שמעביר לשם ערך. בואו נלך ונעשה לנו רדיו בטון. נעשה את זה מתחת לכפתור, נפתח פה דיו חדש. בואו נעשה שכפול כי זה אותו דבר חיצוני.

  14. 03:41

    נוסיף פה Label Notification By ועכשיו אנחנו צריכים בעצם להוסיף רדיו בטון. בואו אני אראה לכם איך מוסיפים את זה, עושים עוד לייבל, רדיו אינליין, זה אומר שהם יהיו בשורה אחד אחרי השני, זה קלאס של בוטסטראפ של עיצוב, אז זה העיצוב שלו, קלאס, ובתוך הלייבל הזאת, שזה

  15. 04:02

    מה שכתוב בתוך הטלפון, לפני הטלפון כתוב פה הרדיו בטון צ'ק, והוא משוייך ל-Ctrl Name, שימו לב, זה, זה, זה, אוקיי? וכתוב פה Value טלפון, והדיפולט שלו זה צ'קט.

  16. 04:16

    והשני, אותו דבר, זה השני גם כן רדיו אינליין גם השם שלו זה אותו שם שימו לב זה אותו שם בכוונה כי רדיו באטן אני בוחר את זה או את זה טלפון ואימייל וזה צ'ק טרו ושם לא צריך להיות צ'ק טרו אז פה אפשר לא לשים פה טלפון שמתי את זה שם ערר ברירת מרדק אז יופי אז יש לי טלפון אימייל וזה משוייך לאותו רכיב למה כי ככה בעצם עושים html נותנים להם אותו שיוך ואז זה או זה יפה

  17. 04:45

    מאוד בוא נבדוק שזה עובד רק שאלה איך נפעיל את הפונקציה, אז כדי להפעיל את הפונקציה אנחנו יכולים לעשות פה on click

לקורס המלא: קורס אנגולר 4 אונליין עם WebAPI

ההרצאה הקודמת: Reactive Form - Duplicate items

ההרצאה הבאה: Reactive Form - Custom Validators

הרצאות קשורות מקורסים אחרים

  • Dynamic Registration
  • תרגול Dynamic Class
  • Embedding Dynamic Data

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React