【发布时间】:2022-02-03 06:30:30
【问题描述】:
我有一个 Angular 模板,它试图抓取一个作为 HTML 元素的字符串,但该字符串未正确呈现。
Angular Html(仅供参考,这是 ng-repeat 中的一个子项):
<div class="right-column">{{item.map[label]}}</div>
这个字符串被拉进来,基本上会被格式化为:
"<a href="..." target="_blank"> Click Here </a>"
此模板的结果是在 DOM 中显示的确切字符串(替换了一些 html 实体)。
DOM 中的结果元素如下所示:
<div class="right-column ng-binding"><a href="..." target="_blank">Click Here</a></div>
我确实注意到,如果我在浏览器开发工具中编辑 HTML 并将 html 实体(< 和 >)替换为实际字符 ,则 html 元素会正确呈现。
我尝试在模板中使用 [innerHTML]="item.map[label]" ,结果没有呈现任何内容。我也尝试过 ng-bind-html="item.map[label]" ,即使在控制器 js 文件中使用 ngSanitize 也会出错。
我不确定还可以尝试什么来进行适当的修复。如果有一种方法可以格式化传入的字符串而不会弄乱角度模板,那将是首选,因为除了此标签样式之外,还有其他格式传入模板。
【问题讨论】:
标签: javascript html angular