Angular DataTables:sName设置不起作用

时间:2014-10-24 19:47:55

标签: angularjs datatables jquery-datatables

我正在使用Angular-DataTables(jQuery Datatables)库,虽然我可以在列上显然设置sName值:

DTColumnDefBuilder.newColumnDef(0).withOption('sName', 'name')

它不会更改API请求 - 它仍然使用列索引(在本例中为0),这对我的API毫无意义。但是,当我使用iDataSort选项时,它确实按预期工作:

DTColumnDefBuilder.newColumnDef(0).withOption('iDataSort', 3)

...传递给我的API调用函数的参数有3个作为列标识符而不是0。

澄清:问题是传递给AJAX调用的实际参数总是使用列索引。我有这个:

sitemapIndex.dtOptions = DTOptionsBuilder.newOptions().withFnServerData(function(sSource, aoData, fnCallback, oSettings){
       sitemapIndex.getSitemaps(aoData);
});

...其中aoData包含用于构造我用于API的查询字符串的参数。无论sName设置(我认为应该控制它),aoData数组的订单项始终是列的索引(不可取)。

enter image description here

我是否在某处错过了额外的设置值以允许使用此选项?

1 个答案:

答案 0 :(得分:1)

在您的API请求中,您是否附加了:name

例如,给定此代码:

$scope.dtColumnDefs = [
    DTColumnDefBuilder.newColumnDef(0).withOption('name', 'foo'),
    DTColumnDefBuilder.newColumnDef(1).notVisible(),
    DTColumnDefBuilder.newColumnDef(2).notSortable()
];

您可以从名为foo的列中获取数据,如下所示:

Fetch data from column name

有关DataTable's documentation的更多信息。