我知道有很多关于ngTable / AngularJS的stackoverflow的信息,但是我尝试了所有的东西,它只是没有用。
我的HTML就是这样:
<!doctype html>
<html lang="en" >
<head>
<meta charset="utf-8">
<title>Sequencing experiments overview</title>
<script src="/LIMS/angular-1.2.14/angular.js"></script>
<script src="/LIMS/js/controllers.js"></script>
<script src="/LIMS/ng-table-master/ng-table.js"></script>
<link rel="stylesheet" href="/LIMS/ng-table-master/ng-table.css" />
<link data-require="bootstrap-css@*" data-semver="3.0.0" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
<link rel="stylesheet" href="/LIMS/style.css" />
</head>
<body ng-app="dataOverview" ng-controller="searchCtrl">
<div>
Search: <input ng-model="query">
<p><strong>Page:</strong> {{tableParams.page()}}
<p><strong>Count per page:</strong> {{tableParams.count()}}
<table ng-table="tableParams" class="table">
<tr ng-repeat="exp in $data | filter:query">
<td data-title="'id'">
{{exp.id}}
</td>
<td data-title="'name'" sortable ="'name'">
{{exp.name}}
</td>
<td data-title="'Type'">
{{exp.type}}
</td>
</tr>
</table>
</div>
</body>
</html>
我的controller.js文件是这样的:
var dataOverview = angular.module('dataOverview', ['ngTable']);
dataOverview.controller('searchCtrl', function searchCtrl($scope, $http, ngTableParams) {
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 5 // count per page
},{
getData: function($defer,params) {
$http.get('/LIMS/index_query.php').
success(function(data, status) {
var orderedData = data;
$defer.resolve(orderedData.slice((params.page() - 1) * params.count(),params.page() * params.count()));
})
}
})
});
index_query.php返回从MySQL数据库查询的有效JSON对象(此处不会显示此内容)。
所以,我猜这个代码几乎可以。它显示一个包含DB中列和值的表。我可以使用过滤器框中的值进行过滤。但是,它只显示5行,并且没有按钮可以转到接下来的5行或增加页面上的行数。如ngTable页面(http://bazalt-cms.com/ng-table/example/1)所述。
当用firebug检查控制台时,我看到一个&#39; Uncaught TypeError:无法调用方法&#39; push&#39;未定义的&#39;错误。我假设它;填充数组的错误,应该构建按钮从1页有5个记录到另一个?今天我浪费了10h,所以请赐教,我将非常感激。