首頁  >  問答  >  主體

同時顯示其他內容和innerHTML

我有一個元件,它根據傳遞的資料呈現標籤,如下所示:

<ng-container>
<ng-container [ngSwitch]="tag">
    <p    *ngSwitchCase="'p'"  [innerHTML]="_getString()"></p>
    <h1   *ngSwitchCase="'h1'" [innerHTML]="_getString()"></h1>
    <h2   *ngSwitchCase="'h2'" [innerHTML]="_getString()"></h2>
    <h3   *ngSwitchCase="'h3'" [innerHTML]="_getString()"></h3>
    <h4   *ngSwitchCase="'h4'" [innerHTML]="_getString()"></h4>
    <span *ngSwitchCase="'span'" [innerHTML]="_getString()"></span>
    <code *ngSwitchCase="'code'" [innerHTML]="_getString()"></code>
    <time *ngSwitchCase="'time'" [innerHTML]="_getString()"></time>
</ng-container>

我想在需要時在每個文字旁邊呈現一個圖示。

<span *ngIf="icon" class="css-{{icon}}" role="presentation"></span>

如果我將圖示標籤放在每個標籤之間,它就會被innerHTML 資料取代。

有什麼方法可以渲染圖示(使用 ng-content 或類似的東西,因為我不想在每個元素中寫入圖示 html)和innerHTML 資料?

我是 Angular 世界的新手,所以正在努力學習。任何幫助將不勝感激。

謝謝。

P粉727531237P粉727531237210 天前334

全部回覆(1)我來回復

  • P粉731977554

    P粉7319775542024-03-23 09:55:28

    看來您的問題並不是特定於 Angular,而是 JavaScript 行為。

    innerHTML 取得或設定元素中包含的 HTML 或 XML 標籤。因此,這意味著它會取代一開始就有的任何內容。 (https://developer.mozilla.org/en-US /docs/Web/API/Element/innerHTML)

    我認為您可以嘗試使用 insertAdjacentHTML() 來代替 - 這應該將 HTML 添加到 DOM 中已經存在的元素中。 在此處檢查語法和範例: https://developer.mozilla .org/en-US/docs/Web/API/Element/insertAdjacentHTML

    #

    回覆
    0
  • 取消回覆