Angular-Datatable:如何在表格单元格中取消数据

时间:2017-04-17 02:09:47

标签: angularjs angular-datatables

我正在使用Angular Datatables来显示记录。但似乎这个表插件会自动清理单元格中的值。

例如,如果我的数据是“Test Record& GT”,它将显示“Test Record>”但我的要求是显示“Test Record& GT”。到目前为止,我已经探索了“createdCell”函数并创建了过滤器和指令来解决这个问题,但无济于事。

当我使用“createdCell”

时,这是我的代码
.withOption('createdCell', function (cell, cellData, rowData, row, col) { 
                    $(cell).html(cellData); 
                })

但它仍然会返回已清理的数据。请帮忙。谢谢:))

2 个答案:

答案 0 :(得分:1)

Sanitize适用于不在.text()

上的HTML

但如果您执行$(cell).text(cellData)而不是$(cell).html(cellData),则不会进行清理,因此您的代码将不会呈现为html,并且会以文本的形式呈现。

这是表示.html().text()之间区别的小提琴 http://jsfiddle.net/hossain/sUTVg/

答案 1 :(得分:1)

我同意Tirthraj Barot的答案,因为它会阻止HTML编码,但整个设置确实没那么有意义:然后createdCell()被称为cellData已填充到<td>。所以基本上你只需再次插入cellData,就像文本一样。

更好的方法是使用&#34; &amp; amp; amp;特技&#34;在renderWidth()。只需将&替换为&amp;,即不会将任何HTML实体编码为其特殊字符,因为它们会被混淆:

.renderWith(function(data, type, full) {
  return data.replace('&', '&amp;') //use /g if you have multiple &'s
})

这也可以确保您可以使用指令,就像在last question

中一样
.renderWith(function(data, type, full) {
  return "<my-directive>"+data.replace('&', '&amp;')+"</my-directive>";
})  

如果您再次填充cellData,则需要再次$compile或将$compile换入$timeout。通过替换&,您不需要它。

参见演示 - &gt;的 http://plnkr.co/edit/gmVAm7qvG9lXVsOgWg8K?p=preview