【问题标题】:is it possible to have Interpolation within InnerHTML是否可以在 InnerHTML 中进行插值
【发布时间】:2019-03-11 00:07:44
【问题描述】:

我有一个 mat-table 循环遍历对象数组并动态呈现数据:<span> {{column[element]}}</span>。我希望其中一个单元格成为链接,而不是其他单元格。

我尝试过像这样使用innerHTML:

<span innerHTML="(element === 'books') ? '<a>column[element]</a>' : column[element]"></span>

它能够正确识别 else 语句 (:column[element]) 之后的动态数据,并且它可以识别 A 标签,但它不会像我想要的那样呈现 &lt;a&gt;&lt;/a&gt; 之间的数据;而是将其作为字符串读取。并打印出“column[element]”而不是我希望它打印出书籍并使每本书成为该特定书籍的链接。

我尝试了这种方法,结果相同:

<span innerHTML="(element === 'books') ? '<a>{{column[element]}}</a>' : column[element]"></span>

【问题讨论】:

  • 您可以为此创建pipe。在管道内部,您可以使用您的条件。并将此管道与[innerHTML] 一起使用。
  • 可以通过[innerHTML]="condition ? '&lt;a&gt;' + var1 + '&lt;/a&gt;' : var2"完成。

标签: angular interpolation innerhtml


【解决方案1】:

不...您可以使用 ng-switch。那是有角度的方式......特别是如果你使用AOT。否则,您将需要 JIT 才能动态编译模板。

<span [ngSwitch]="element">
  <a *ngSwitchCase="'books'">{{column[element]}}</a>
  <ng-container *ngSwitchDefault>
    {{column[element]}}
  </ng-container>
</span>

【讨论】:

  • 感谢它的工作...实际链接它:{ {列[元素]}}
  • @JupiterFullMean 你应该使用 routerLink 指令......或者你不使用角度路由器吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多