
בוב. בונים אובייקט RegExp מהשם האסור, ובודקים באמצעות test האם הערך שהמשתמש הזין מכיל אותו.forbiddenName ועם הערך שהמשתמש הזין. אם אין התאמה, מחזירים null.הטקסט המלא של הדקות הראשונות בהרצאה «Custom Validators With Parameter» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזאת אנחנו הולכים להסתבך עם custom validators וראינו איך לעשות ולידטור משלנו אנחנו עכשיו רוצים לשכלל אותו ולהעביר לו בסוגריים מידע נוסף מה זאת אומרת?
אני רוצה שיהיה לי custom validator לדוגמה על שם, נכון? יש לנו פה בשמות ולידטורים אז יש לנו את הוולידטורים של המערכת בואו נעשה אנטרים ונכניס כמה ולידטורים משלנו אז יש לנו פה ככה ולידטורים אני רוצה לעשות ולידטור משלי שבסוגריים מקבל שם שאסור אוקיי בוא נעשה קודם
כל ולידטור רגיל שחוסם את השם של בוב ואחרי זה נשכלל אותו ונעשה ולידטור שבסוגריים יודע לקבל שמות אסורים ואז אני יכול לשים אותו בכל מיני מקומות ולהעביר לו פרמטרים ואנחנו נראה למה זה מאוד חשוב לדעת להעביר פרמטרים למה זה כזה מיוחד כי בעיה שעד עכשיו כשעשינו את זה יכולנו להעביר לו רק את החתימה הזאת נכון אנחנו לא יכולים לעשות משהו אחר אז בואו נעשה ולידטור
כמו שעשינו לפני כן, בדיוק עם אותה חתימה שאנחנו גונבים אותה בעצם מ-required. אני בא ל-required, עושה go to definition.
הוא רואה את החתימה שלו ואת החתימה שלו, בעצם את המבנה, מה הוא מקבל, מה הוא מחזיר. אני מעתיק אליי לכאן, ובואו נעשה פה רטורנל. ועכשיו אני רוצה לבדוק האם הרכיב שלי של השם קיבל שם אסור.
אז אנחנו יכולים לעשות דבר מאוד פשוט. בואו נעשה משתנה עזר, נקרא לו name regular expression, וניתן לו ערך של שם האסור ככה כותבים regular expression הוא יהיה מסוג regular expression יהיו regular expression בסוגריים אני אתן לו את השם האסור ועכשיו אני יכול לקחת אותו ולבדוק בגלל שזה אובייקט של regular expression יש לו טסט לבדוק האם
control.value מכיל אותו ואז יש לי תשובה וב-return אני בודק אם התשובה הזאת true זה אומר שהוא מכיל משהו שאסור אז אני אחזיר חזרה מילה forbidden name שם אסור מידע נוסף זה ctrl.value ctrl.value זה למעשה המידע הנוסף שהגיע לי מהקונטרולר זה למעשה הuser input בוא נעשה פה עוד משתנה עזר ונקרא לו user input זאת אומרת אתם מבינים שזה הערך שהגיע לי מהמשתנה אני אעשה לכם let user
input שווה ל ctrl.value ואני בודק האם user input הוא חלק מזה ואם כן אני מחזיר לו את האוסף forbidden name והuser input אם הוא false זה אומר שהוא לא קיים שמה אז אני אחזיר נ"ל כי אין הודעות שגיאה ככה אני עושה ולידטור רגיל של שם בוב שהוא לא מופיע לי בתוך הרשימת השמות אוקיי בואו נבדוק שזה עובד וגם לפני כן אני רוצה להראות לכם את
הודעות השגיאה מתחת לשם אה יש לנו פה כבר מוכנים אז אני אקח את זה ואני אגיד forbidden name בוב name is forbidden למה כי היה לי בילדות מישהו שקראו לו בוב והוא הרביץ לי ואני שונא בוב שימו לב ה-forbidden name מתווסף לאוסף השגיאות עד עכשיו לא עשינו שום דבר חדש הקטע שאני רוצה ללמד אתכם איך להעביר לזה
לא רק בוב אלא כל שם שאנחנו נרצה ואיך להעביר פרמטרים וזה מוחקב זה לא פשוט בכלל אז אני בא לכאן עושה ctrl f5 קונה איזושהי גבינה וכותב בשם מה שהוא מוחק name as required כותב שלוש אותיות number as required הכל עובד תקין כותב פה בוב צריכה להיות הודעת שגיאה לא עובד לי
ואין לי פה שגיאה בואו נעשה דבאגר, שימו לב אני יכול לעשות דבאגר בתוך הוולידטור ולראות על מה זה נופל. קודם כל אני נכנסתי אליו ישר ובואו נעשה F10, F10, F10, טוב בינתיים זה לא מעניין, לא מעניין כי עדיין אין כלום, עדיין אין כלום.
בואו נכניס פה בוב, או יש פה עוד B ומה התוצאה? פולס, יופי, בואו, מעניין אותי מה קורה כשיש בוב, יש פה בוב והתוצאה היא עדיין פולס, או זאת הבעיה שלי, בואו נלך לבדוק אותה, איך בודקים אותה?
אני לוקח את הדבר הזה לקונסול שימו לב אני באמצע זה false ואם הייתי מעביר לו ככה בוב אני יודע מה הבעיה אני יודע מה הבעיה אולי צריך פה בלי גרשיים לעשות ככה בואו נראה ואני אכתוב פה בוב כאשר אדביק את זה בואו נראה מה קורה עכשיו user input bob וזה true זה היה צריך להיות פשוט בלי גרשיים וכשזה true bob name is forbidden חברים זה עובד שימו לב השם של בוב אסור טוב שום דבר חדש פה חוץ
מזה שעשינו regular expression ובדקנו האם איזשהו ביטוי בטסט על regular expression השאלה זה איך אני אעשה פה עכשיו על הvalidator שלנו בסוגריים אני רוצה להעביר לו את הבוב הזה כי אני רוצה פעם שזה יהיה בוב ופעם שזה יהיה לא יודע מה עוד שם וכל מיני רכיבים יוכלו להשתמש בו איך אני מעביר לו כל מיני רכיבים שאסור
לדוגמת ג'ון איך אני משתמש בvalidator הזה עם פרמטר זה משהו שלא עשינו עד עכשיו וזה מאוד חשוב שתדעו לעשות את זה שנוכל לקבל פרמטרים ולשכלל את הוולידטור לדוגמה כמו שעשינו מינג לאנקט אתם רואים בסוגריים שלוש ואתם רואים פאטרן בסוגריים מקבל משהו אבל הם בכל מקרה חייבים להחזיר אותו דבר הם בכל מקרה מחזירים ולידיישן
פאנקשן אז איך אנחנו מקבלים אנחנו חייבים לקבל את זה או יש פה טריק שימו לב הפונקציה