数据 Table 逃逸期

Data Table Escape Periods

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

我设置了我的 table 使用名称的对象和列:

{ "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 "Requested unknown parameter "foo.bar" for row n". This 页面指示需要使用 \ 对句点进行转义。 不幸的是,这并不可靠。

这是我在每个位置使用的反斜杠 (\) 数量的 table。

我怎样才能避免这种情况,以便它在两个地方都有效?

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

中完全消除句点

我相信您的原始数据格式如下所示,这是 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>