PracticU

Reactive Form - Duplicate items

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

Reactive Form - Duplicate items
שדה טלפון אחד לא תמיד מספיק, ולפעמים הלקוח צריך להזין כמה מספרים. בהרצאה הזאת נבנה רשימה דינמית של שדות טלפון בעזרת FormArray, עם כפתור שמוסיף שדה חדש בכל לחיצה.
השלבים העיקריים
1. מערך של קונטרולים: במקום FormControl בודד מגדירים FormArray, ובתוכו מערך של קונטרולים. כל איבר במערך הוא טלפון אחד, והמערך יכול להחזיק שניים, שלושה או ארבעה שדות.
2. הפונקציה להוספה: כפתור עם type="button" (ולא submit) מפעיל פונקציה שדוחפת קונטרול חדש למערך באמצעות push. בתוך הפונקציה מגדירים משתנה עזר מסוג FormArray, כדי שהאינטליסנס יכיר את השמות. הקונטרול החדש נוצר בלי ערך ברירת מחדל.
3. הצגה ב-HTML: משכפלים את השדה הקיים בתוך לולאת *ngFor על הקונטרולים של המערך, ומשתמשים באינדקס i. כל שדה מקבל שם ו-id לפי האינדקס, כך שאין כפילויות גם אחרי הוספה.
4. תווית מקושרת לשדה: ל-for של התווית אין property זמין, לכן כותבים אותו באמצעות [attr.for]. זה הטריק כשתכונה לא עובדת עם סוגריים מרובעים רגילים.
5. שגיאות לכל שדה: כל שדה בודק בנפרד אם הוא לא תקין וגם נגעו בו, ומציג הודעה באדום רק במקרה כזה.
שימו לב
- בלי קאסטינג מפורש ל-FormArray Angular מחזיר הודעת שגיאה על הקונטרולים שבתוך המערך.
בסיום יש שני שדות טלפון כברירת מחדל, והלקוח יכול להוסיף כמה שירצה. כל שדה מציג את השגיאות שלו.
השיעור הבא בקורס: Reactive Form - Dynamic Validators

פרקי ההרצאה: Reactive Form - Duplicate items

  1. 00:00

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

  2. 00:37

    הגדרת מערך FormArray לטלפונים

  3. 02:13

    פונקציה להוספת טלפון חדש למערך

  4. 03:43

    הצגת מערך הטלפונים בתבנית HTML

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

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

  1. 00:02

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

  2. 00:21

    type button ולא סאבמיט ואני עושה לו add טלפון, add another telephone number ויהיה לו בטון פריימרי.

  3. 00:30

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

  4. 00:39

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

  5. 00:53

    אז בואו נתחיל מזה שאנחנו נבנה באנגולר את המבנה הלוגי ואז נצמיד אותו ל-HTML שעוד לא בנינו לטלפון. אז נתחיל מכאן, אז מה אני מוסיף? אני מוסיף פה לא רכיב רגיל כמו שעד עכשיו ראינו אלא רכיב שנקרא array מערך שבפנים יש רכיבים.

  6. 01:14

    זאת אומרת לא form control אחד אלא form array מערך של ובתוך המערך אני נותן לו בפנים בסוגריים שלו, תסתכלו, מערך של טלפונים וזה למעשה יהיה כמו פורום קונטרול רק הפעם הוא נכנס לנו לתוך מערך ואז בפנים בתוך המערך אני נותן מערך של קונטרולרים, אתם רואים?

  7. 01:36

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

  8. 01:54

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

  9. 02:19

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

  10. 02:48

    דבר גם זה וגם גם זה יחזיר לי בסוף את האובייקט הזה, פורמר ריי. אחרי שהוא מחזיר לי את הפורמר ריי, בואו נעשה לו רק טייפ, שיהיה לנו טייפ מוגדר היטב, וגם פה נעשה לו טייפינג.

  11. 03:00

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

  12. 03:11

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

  13. 03:24

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

  14. 03:45

    אז בואו נלך ל-HTML, ואני רוצה אותו מתחת לאדרס. זה אדרס, והנה פה נכניס אותו. אז אני פותח פה בעצם דיו, שהדיו הזה הוא יהיה משוייך לפורום array.

  15. 03:56

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

  16. 04:09

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

  17. 04:44

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

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

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

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

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

  • COPY MODULE WITH ITEMS
  • UINaviagationControllers - UINavigationItems Titles, Bar Button Items

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

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