如何清理 slickgrid 中的行数据?

Posted

技术标签:

【中文标题】如何清理 slickgrid 中的行数据?【英文标题】:How to sanitze the row data in the slick-grid? 【发布时间】:2021-12-05 06:26:02 【问题描述】:

我们正在使用 slick-grid 在 angularJS 中显示我们应用程序中的数据,我们有来自后端的数据可能包含<,>,它以“<>”的形式发送。这需要在光滑的网格中进行清理,因为由于我们拥有的数据大小,我无法在控制器中执行此操作。那么我们如何在光滑网格中使用 show <> as 呢?有什么办法吗?

通常在其他地方如果我使用ng-bind-html=value 将使<> 变为 在 span 或 div 中。无法在光滑网格数据行中执行此操作。

【问题讨论】:

【参考方案1】:

您可以使用自定义格式化程序做任何您想做的事情,您可以在其中取消转义,但默认情况下格式化程序采用 html 字符串,因此只需声明格式化程序并返回值即可解决您的问题。

this.columnDefinitions = [
   id: 'test', field: 'test', formatter: (row, cell, value) => value, ,
];

顺便说一句,我认为您的意思不是 Sanitize,因为那是另一个概念(通常 sanitize 用于删除可能打开安全漏洞的脚本标签),在您的情况下,我认为您的意思是取消转义或取消编码 html 特殊字符作为常规 html。目前自定义格式化程序的 SlickGrid 中没有清理,所以也请注意...实际上最后一句话不再正确,我创建了一个 Pull Request 合并并发布以添加基本清理以限制 XSS 攻击。

【讨论】:

以上是关于如何清理 slickgrid 中的行数据?的主要内容,如果未能解决你的问题,请参考以下文章

Slickgrid:如何使用新的复选框选择列插件获取选定的行?

如何将类添加到 SlickGrid 中的单元格

如何将 css 类添加到 slickGrid 中的特定行?

使 SlickGrid 中的列成为超链接

具有组级别选择的 SlickGrid 多级分组

Slickgrid,带有下拉选择列表的列?