AngularJS ngTable 不会使用 http 调用触发 getData 方法



我正在尝试将ngTable与angularJS一起使用。

我已经安装了所有有角度的工作人员,效果很好。

现在,我需要使用 ngTable。

我正在使用下一个代码,但我的 http get 从未被触发。

我在这里错过了什么?

我的代码:

angular.module('clinang', ['ngTable']).controller('pacientesCtrl', function($scope,$http,NgTableParams){
  this.tableParams = new NgTableParams({
    page: 1,
    count: 10
  }, {
    getData:  function($defer, params) {
      $http.get('/getdadospac/?oper=S', {params: {
        pageNumber:params.page() - 1,
        rangeStart:rangeStart,
        rangeStop:rangeStop}})
      .then(function(data, status) {
        params.total(data.results.total);
        $defer.resolve(data.results);
      });
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link rel="stylesheet"; href="https://unpkg.com/ng-table@2.0.2/bundles/ng-table.min.css">
<script src="https://unpkg.com/ng-table@2.0.2/bundles/ng-table.min.js"></script>
<body ng-app="clinang">
  <div ng-controller="pacientesCtrl">
    <a class='btn btnprimary' href='/getdadospac/?oper=S' >Button</a> 
    <table ng-table="vm.tableParams" class="table" show-filter="true">
      <tr ng-repeat="paciente in $data">
        <td title="'Pront'" filter="{ name: 'text'}" sortable="'pront'">
          {{paciente.pront}}</td>
        <td title="'Nome'" filter="{ age: 'number'}" sortable="'nome'">
          {{paciente.nome}}</td>
      </tr>
    </table>
  </div>
</body>

如果在创建控件后使用 reload() 方法,它将起作用。

您也在使用.success但对于$http,您必须使用.then方法。

我在getData中放置了一个debugger调用,所以如果你打开你的DevTools,你可以看到它将被执行。

angular.module('clinang', ['ngTable']).controller('pacientesCtrl', function($scope,$http,NgTableParams){
  this.tableParams = new NgTableParams({
    page: 1,
    count: 10
  }, {
    getData:  function($defer, params) {
    debugger;
      $http.get('/getdadospac/?oper=S', {params: {
        pageNumber:params.page - 1}})
      .then(function(data, status) {
        params.total(data.results.total);
        $defer.resolve(data.results);
      });
    }
  });
    this.tableParams.reload();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link rel="stylesheet"; href="https://unpkg.com/ng-table@2.0.2/bundles/ng-table.min.css">
<script src="https://unpkg.com/ng-table@2.0.2/bundles/ng-table.min.js"></script>
<body ng-app="clinang">
  <div ng-controller="pacientesCtrl">
    <a class='btn btnprimary' href='/getdadospac/?oper=S' >Button</a> 
    <table ng-table="vm.tableParams" class="table" show-filter="true">
      <tr ng-repeat="paciente in $data">
        <td title="'Pront'" filter="{ name: 'text'}" sortable="'pront'">
          {{paciente.pront}}</td>
        <td title="'Nome'" filter="{ age: 'number'}" sortable="'nome'">
          {{paciente.nome}}</td>
      </tr>
    </table>
  </div>
</body>

最新更新