我正在使用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数组的订单项始终是列的索引(不可取)。
我是否在某处错过了额外的设置值以允许使用此选项?
答案 0 :(得分:1)
在您的API请求中,您是否附加了:name
?
例如,给定此代码:
$scope.dtColumnDefs = [
DTColumnDefBuilder.newColumnDef(0).withOption('name', 'foo'),
DTColumnDefBuilder.newColumnDef(1).notVisible(),
DTColumnDefBuilder.newColumnDef(2).notSortable()
];
您可以从名为foo
的列中获取数据,如下所示:
有关DataTable's documentation的更多信息。