2

我知道 stackoverflow 上已经有很多关于 ngTable/AngularJS 的信息,但是我尝试了所有方法,但它不起作用。

我的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 对象(此处不显示)。

所以,我猜这段代码几乎没问题。它显示一个表,其中包含来自数据库的列和值。我可以使用过滤器框中的值进行过滤。但是,它只显示 5 行,并且没有按钮可以转到接下来的 5 行或增加页面上的行数。如 ngTable 页面 ( http://bazalt-cms.com/ng-table/example/1 ) 所述。

使用 firebug 检查控制台时,我看到“未捕获的类型错误:无法调用未定义的方法 'push' ”错误。我认为它是错误的填充数组,该数组应该构建按钮以从具有 5 条记录的 1 页转到另一页?我今天浪费了10个小时,所以请赐教,我将非常感激。

4

0 回答 0