数据表逃逸期

时间:2015-06-24 16:09:32

标签: javascript jquery json datatables

我有一个用datatable.js创建的数据表。

我使用名称为

的对象和列设置我的表
{ "title": "image", "data": "foo1", "className": "dt-center" },
{ "title": "id", "data": "foo.bar", "className": "dt-center" },
{ "title": "name", "data": "lorem", "className": "dt-center" }

我正在尝试动态添加一行。我使用以下代码执行此操作:

var Json = {
    "foo1" : '5',
    "foo.bar" : '3',
    "lorem" : 'True'
}
var rtn = oTable.fnAddData(Json );

问题是,我收到了error “请求的未知参数”foo.bar“for row n”This页面表示需要使用\\转义句点。 不幸的是,这不可靠。

这是我在每个位置使用的反斜杠数(\)的表格。 enter image description here

如何逃避这一点,以便它在两个地方都有效?

2 个答案:

答案 0 :(得分:1)

我相信您的原始数据采用下面显示的格式,这是columns.data中点缀符号(foo.bar)最初工作的唯一解释。

{
   "foo1": '5',
   "foo": { "bar": '3'},
   "lorem": 'True'
}

columns.data中的虚线表示法(foo.bar)允许从嵌套对象中读取,因此foo.bar引用名为bar的属性的foo子属性。

您必须以相同的格式将数据传递到fnAddData,因此您需要使用以下代码:

var Json = {
    "foo1" : '5',
    "foo": { "bar" : '3' },
    "lorem" : 'True'
};

var rtn = oTable.fnAddData(Json);   

请参阅下面的示例以获取代码和演示。

$(document).ready(function() {
   
   var oTable = $('#example').dataTable({
     'columns': [
        { "title": "image", "data": "foo1", "className": "dt-center" },
        { "title": "id", "data": "foo.bar", "className": "dt-center" },
        { "title": "name", "data": "lorem", "className": "dt-center" }
     ]
   });
  
   var Json = {
      "foo1" : '5',
      "foo": { "bar" : '3' },
      "lorem" : 'True'
   };
  
   var rtn = oTable.fnAddData(Json );   
});
<link href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

<table id="example" class="display" cellspacing="0" width="100%">
</table>

答案 1 :(得分:0)

这很可能是插件代码本身的问题。尝试完全从JSON键值foo.bar

中删除句点