javascript - 使用 Array.join ('<br/>' )

标签 javascript html arrays angularjs string-formatting

这有什么不起作用的原因吗? :

this.categoriesId = $rootScope.categoriesList.map(function(obj) {
  return obj.id;
}).join('<br />');
this.categoriesName = $rootScope.categoriesList.map(function(obj) {
  return obj.name;
}).join('<br />');

在 View 中:

<b>Categories ID :</b><br/><br/>
{{h.categoriesId}}
<hr>
<b>Categories Name :</b><br/><br/>
{{h.categoriesName}}

没有换行符,<br />不被解释。

我该如何解决这个问题?

最佳答案

因为 Angular 在将字符串插入 DOM 之前会转义字符串中的 HTML,以防止 XSS 攻击。

杂乱的修复

使用 ng-bind-html 指令插入 HTML 原样

<span ng-bind-html="h.categoriesName"></span>

确保包含 $sanitize服务,ng-bind-html 将自动清理您的字符串以确保它在其上下文中是安全的。

清理修复

使用 ng-repeat 遍历列表,无需担心将标记插入字符串。

<b>Categories Name :</b><br/><br/>
<span ng-repeat="name in categoriesList">
  {{name}}<br />
</span>

关于javascript - 使用 Array.join ('<br/>' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35555542/

相关文章:

javascript - 纸波纹不火

javascript - 修复了标题和自动滚动到 Div 的问题

c - 如何为无符号整数设置默认值 "NULL"(例如 : NaN to floating points)?

css - Kendo Mobile - 模态视图不调整内容的高度

html - 如何在 layout.phtml 中获取 getRequestUri()

java - 程序编译,但运行时数组越界?

c - 在 C 中为两个(一维)数组赋值

JavaScript:根据字符串包含的数字对字符串进行排序

javascript - jquery FullCalendar - 项目被复制

javascript - 如何让 cryptojs 处理 "rollup"文件