עזרה דחופה באנגולר 2+

cd123

משתמש פעיל
D I G I T A L
שלום,

אני משתמשת כרגע באנגולר 7,
יש לי קומפוננטה עם פרמטר מסויים.
בתוך הפרמטר אני רוצה לשים מחרוזת של אלמנטים div שמכילים טקסט, שאותם אמלא מהקוד לפי נתונים שאקבל,
את הפרמטר אני משתילה בתוך div אחר ב html בשיטה הזו {{paramName}} הבעיה שבמקום שיופיעו ה div הפנימיים כאלמנטים,
הם מופיעים כחלק ממחרוזת ארוכה של כל תוכן הפרמטר.
אשמח לדעת איך הדרך הנכונה לעשות את זה

תודה מראש
 

Aharono

משתמש פעיל
D I G I T A L
השאלה ביסודה היא לא נכונה, הדרך הנכונה היא לא לייצר HTML שמתקבל כפרטמטר...
כל הרעיון מאחורי אנגולר זו התבנית הברורה של הHTML מראש.

אם תפרטו על מה שאתם מנסים לעזור, נשתדל למצוא פתרון "אנגולרי" מתאים
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
שלום,

אני משתמשת כרגע באנגולר 7,
יש לי קומפוננטה עם פרמטר מסויים.
בתוך הפרמטר אני רוצה לשים מחרוזת של אלמנטים div שמכילים טקסט, שאותם אמלא מהקוד לפי נתונים שאקבל,
את הפרמטר אני משתילה בתוך div אחר ב html בשיטה הזו {{paramName}} הבעיה שבמקום שיופיעו ה div הפנימיים כאלמנטים,
הם מופיעים כחלק ממחרוזת ארוכה של כל תוכן הפרמטר.
אשמח לדעת איך הדרך הנכונה לעשות את זה

תודה מראש
אם אני מבין נכון הבעיה היא שאנגולר מקודד את תגי HTML במקום לרנדר אותם. ובשפה פשוטה: במקום לראות מלבן יפה אתה רואה מילה <div> על המסך.
אני לא עובד עם אנגולר אבל מניח שזה אותו הדבר כמו בריאקט.
בשביל לרנדר HTML צריך לתת לאנגולר הוראה מיוחדת.
גוגל אומר שזה אמור להיראות כך:
<div [innerHTML]="theHtmlString"></div>

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

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

cd123

משתמש פעיל
D I G I T A L
מה שכן, צריך מאוד מאוד להיזהר מזה.
אם מקור הHTML הוא מהמשתמש, ואתה מכניס את זה בדף שיוצג למשתמשים אחרים - אז לא צריך להיות הקר בשביל לפרוץ את האתר. כל ילד שיודע קצת מה זה 'עוגיות' יוכל להשתלט תוך שניות על חשבונות של אנשים אחרים.
כמובן שהקוד HTML מקורו בתוך הקוד שלי, מה שאני מנסה לעשות בקוד זה לקחת טקסט מסויים שיש לי שמור במערכת כשדה אחד, לזהות בו תאריכים ושעות ולהקיף אותם ב span כדי לצבוע אותם בצבע שונה. השדה תצוגתי בלבד ולא מתעדכן מהכיוון של המשתמש באתר.
בנוסף יש לי בשדה ירידות שורה שבהן רציתי להפריד את השורות השונות ב div
 

רחלי קורן

משתמש רשום
D I G I T A L
צריך להכניס את המשתנה לתוך attribute של innerHTML:
לדוגמה:
<div [innerHTML]="paramName"></div>
 

cd123

משתמש פעיל
D I G I T A L
כן, לבסוף הכנסתי את המשתנה בצורת
[innerHTML]="paramName"

בנוסף קיימת נקודה נוספת לגבי הסיטואציה הזאת, שלמעשה עיצוב שארצה להכיל על תגיות בתוך הפרמטר לא מקבלות עיצוב באופן ספונטני, הדבר הזה פתיר על ידי הוספת הגדרה ל @component
encapsulation:ViewEncapsulation.None
 

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קיט ב'

ט בַּמֶּה יְזַכֶּה נַּעַר אֶת אָרְחוֹ לִשְׁמֹר כִּדְבָרֶךָ:י בְּכָל לִבִּי דְרַשְׁתִּיךָ אַל תַּשְׁגֵּנִי מִמִּצְוֹתֶיךָ:יא בְּלִבִּי צָפַנְתִּי אִמְרָתֶךָ לְמַעַן לֹא אֶחֱטָא לָךְ:יב בָּרוּךְ אַתָּה יְהוָה לַמְּדֵנִי חֻקֶּיךָ:יג בִּשְׂפָתַי סִפַּרְתִּי כֹּל מִשְׁפְּטֵי פִיךָ:יד בְּדֶרֶךְ עֵדְוֹתֶיךָ שַׂשְׂתִּי כְּעַל כָּל הוֹן:טו בְּפִקֻּדֶיךָ אָשִׂיחָה וְאַבִּיטָה אֹרְחֹתֶיךָ:טז בְּחֻקֹּתֶיךָ אֶשְׁתַּעֲשָׁע לֹא אֶשְׁכַּח דְּבָרֶךָ:
נקרא  5  פעמים

לוח מודעות

למעלה