我正在尝试为angularjs中的表实现DataTables服务器端处理/分页。我使用过DataTables示例但我的表没有显示。我很确定我错过了一件轻微的事情,但无法弄明白......试了很多东西......
我的HTML:
<div class="table-responsive">
<table id="consolidatedPageTable" class="table table-condensed table-striped table-bordered" >
<thead>
<tr>
<th >Source</th>
<th >Mailing Date</th>
<th >Status</th>
<th >CPI</th>
<th >User ID</th>
<th >Program</th>
<th >Customer Number</th>
<th >Customer Name</th>
<th >DL Date</th>
</tr>
</thead>
</table>
我的控制器:
app.controller('ConsolidatedController', function($scope,$rootScope,$http,$filter,$location,$routeParams) {
createTable();
$location.path('consolidated');
});
function createTable(){
$(function(){
var table = $('#consolidatedPageTable').dataTable({
"destroy": true,
"processing": true,
"serverSide": true,
"ajax": "scripts/consolidationTable.php",
"columnDefs": [
{
"targets": [9],
"visible": false,
"searchable": true
}
]
});
})
}
我的php scipt(我用XXX替换了服务器特定信息)
<?php
error_reporting(0);
$table = "consolidated";
$primaryKey = "customerNumber";
$columns = array();
$columns[] = array('db' => 'source' , 'dt' => 0);
$columns[] = array("db"=>"mailingDate","dt"=>1);
$columns[] = array("db"=>"status","dt"=>2);
$columns[] = array("db"=>"cpi","dt"=>3);
$columns[] = array("db"=>"userId","dt"=>4);
$columns[] = array("db"=>"shorttext","dt"=>5);
$columns[] = array("db"=>"customerNumber","dt"=>6);
$columns[] = array("db"=>"customerName","dt"=>7);
$columns[] = array("db"=>"dlDate","dt"=>8);
$sql_details = array("user" => "XXX","pass" => "XXX","db" => "XXX","host" => "XXX");
require("ssp.class.php");
echo json_encode(SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns ));
?>
我可以自己运行php脚本,它会以dataTables示例中显示的格式显示正确的数据。在我的应用程序中,在屏幕上我得到的是标题行,它似乎不是一个dataTables看起来格式。
任何人都可以看到可能导致没有数据显示的内容吗?
答案 0 :(得分:0)
我相信“columnDefs”对象应该是一个数组:
我使用angular-datatables包中包含的DTColumnDefBuilder后控制台记录了这个。我错了 - 我也有一些DT的困难。