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

  • הוסף לסימניות
  • #1
שלום,

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

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

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

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

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

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

מה שכן, צריך מאוד מאוד להיזהר מזה.
אם מקור הHTML הוא מהמשתמש, ואתה מכניס את זה בדף שיוצג למשתמשים אחרים - אז לא צריך להיות הקר בשביל לפרוץ את האתר. כל ילד שיודע קצת מה זה 'עוגיות' יוכל להשתלט תוך שניות על חשבונות של אנשים אחרים.
לא לחינם בריאקט האופציה של הכנסת HTML נקראת
dangerouslySetInnerHTML
 
  • הוסף לסימניות
  • #4
מה שכן, צריך מאוד מאוד להיזהר מזה.
אם מקור הHTML הוא מהמשתמש, ואתה מכניס את זה בדף שיוצג למשתמשים אחרים - אז לא צריך להיות הקר בשביל לפרוץ את האתר. כל ילד שיודע קצת מה זה 'עוגיות' יוכל להשתלט תוך שניות על חשבונות של אנשים אחרים.
כמובן שהקוד HTML מקורו בתוך הקוד שלי, מה שאני מנסה לעשות בקוד זה לקחת טקסט מסויים שיש לי שמור במערכת כשדה אחד, לזהות בו תאריכים ושעות ולהקיף אותם ב span כדי לצבוע אותם בצבע שונה. השדה תצוגתי בלבד ולא מתעדכן מהכיוון של המשתמש באתר.
בנוסף יש לי בשדה ירידות שורה שבהן רציתי להפריד את השורות השונות ב div
 
  • הוסף לסימניות
  • #5
צריך להכניס את המשתנה לתוך attribute של innerHTML:
לדוגמה:
<div [innerHTML]="paramName"></div>
 
  • הוסף לסימניות
  • #6
כן, לבסוף הכנסתי את המשתנה בצורת
[innerHTML]="paramName"

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

פרוגבוט

תוכן שיווקי
פרסומת

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

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


תהילים פרק כה

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