2016-07-07 12 views
0

Ich versuche zum ersten Mal AngularJs NgTableParams zu implementieren ich konnte Daten in Tabelle zu füllen, aber wenn ich params.page() usw. Methoden verwenden, werfen Fehler, folgende Probleme habe ich witn ng-table.Angularjs Tabelle Parameter funktionieren nicht?

1- Also, wenn ich nicht params Methoden verwenden konnte ich Daten für die Tabelle bekommen, aber ich sehe Fehler $defer.resolve is not a function.

2- Wenn ich params ich habe Fehler can not read page its undefined

Jede Idee, wie diese Probleme zu lösen, alles, was ich meine Tabellenoptionen bin fehle in folgendem Code zu setzen?

ctrl.js

angular.module('loggingApp').controller('ditTableCtrl', function($scope, DitFactory, $filter, NgTableParams) { 
    'use strict'; 
    $scope.logs = []; 
    DitFactory.getLogs().then(function(response) { 
     $scope.logs = response.data; 
     console.log($scope.logs); 
    }); 
    $scope.usersTable = new NgTableParams({ 
     page: 1, 
     count: 10 
    }, { 
     total: $scope.logs.length, 
     getData: function($defer, params) { 
      $scope.data = $scope.logs.slice((params.page() - 1) * params.count(), params.page() * params.count()); 
      $defer.resolve($scope.data); 
     } 
    }); 
}); 

main.html

<table ng-table="usersTable" class="table table-striped"> 
     <tr ng-repeat="user in data"> 
      <td data-title="'Id'" > 
       {{user.id}} 
      </td> 
      <td data-title="'First Name'" > 
       {{user.first_name}} 
      </td> 
      <td data-title="'Last Name'" > 
       {{user.last_name}} 
      </td> 
      <td data-title="'e-mail'" > 
       {{user.email}} 
      </td> 
      <td data-title="'Country'"> 
       {{user.country}} 
      </td> 
      <td data-title="'IP'" > 
       {{user.ip_address}} 
      </td> 
     </tr> 
    </table> 

Antwort

0

Ich habe nicht mehr als $ aufzuschieben gesehen. Ich denke, dass Sie ein Versprechen verwenden möchten, in diesem Fall wäre es $ q.defer(), mit Verzögerung als Methode im $ q-Versprechen-Service. Etwas in diesen Zeilen:

var deferred = $q.defer(); 
deferred.resolve($scope.data); 

Lesen Sie zuerst auf Versprechen, gibt es mehrere Ressourcen. Hier nur ein paar: https://docs.angularjs.org/api/ng/service/ $ q

http://fdietz.github.io/recipes-with-angular-js/consuming-external-services/deferred-and-promise.html

Verwandte Themen