2017-01-25 3 views
-1

Ich Abrufen von Daten von api und bevölkern in der Tabelle Ich brauche nur die Tabelle relaod in jedem 1 Sekunde habe ich versucht, $ timeout verwenden, aber im immer Fehler sagen -Wie lade ich die dynamische Tabelle alle 1 Sekunde in der Steuerung in angular js?

$scope.tableParams.reload();//TypeError: Cannot read property 'reload' of undefined 

Code

<div align="center"> 
     <div ng-app="myApp" ng-controller="customersCtrl"> 
      <table ng-table="tableParams"> 
       <tr> 
        <td>device id</td> 
        <td>device unique id</td> 
        <td>access status</td> 
        <td>current time</td> 
       </tr> 
       <tr> 
        <td>{{ access.id }}</td> 
        <td>{{ access.devid }}</td> 
        <td><img ng-src="{{statusValues[access.status]}}" /></td> 
        <td>{{ access.CurrentTime }}</td> 
       </tr> 
      </table> 
     </div> 
     </div> 



     <script type="text/javascript"> 
var app = angular.module('myApp', []); 
app.controller('customersCtrl', function ($scope, $http, $timeout) { 
    $http.get("http://example.com/get") 
    $scope.reloadTable = function() { 
     $timeout(function() { 
      $scope.tableParams.settings().$scope = $scope; 
      $scope.tableParams.reload(); 
      $scope.reloadTable(); 
     }, 1000) 
    }; 
    $scope.reloadTable(); 
}); 
     </script> 
+0

Verwendung Buchse Daten in Echtzeit laden –

+0

Entschuldigung ich bin nicht bewusst, Socket. Ich bin neu in eckigen js coding.can hilf mir aus. – Swapna

+1

http://stackoverflow.com/questions/26205534/ng-table-not-rendering-new-data-when-reloading-request –

Antwort

1

Hallo Ihr Versuch, die params mit Reload-Methode neu zu laden, aber es scheint, dass reload() -Methode mit $ route Konzept arbeitet die URL zu aktualisieren, basierend auf params. und insted $ timeout, versuchen Sie mit $ Intervall,

ich hier einige Änderungen gemacht haben, nehmen Plesae einen Blick und dies kann hilfreich

var app = angular.module('myApp', []); 
 
app.controller('customersCtrl', function ($scope, $http, $interval) { 
 
    $scope.fn = function(){ 
 
    $http.get("https://jsonplaceholder.typicode.com/posts") 
 
     .then(function(data){ 
 
     console.log(data.data) 
 
     $scope.Tdata = data.data;  
 
    }) 
 
    } 
 
     $interval(function() {   
 
      $scope.fn() 
 
     }, 1000)  
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app='myApp' ng-controller="customersCtrl"> 
 
<div align="center"> 
 
     <div ng-app="myApp" ng-controller="customersCtrl"> 
 
      <table ng-table="tableParams"> 
 
       <tr> 
 
        <td>device id</td> 
 
        <td>device unique id</td> 
 
        <td>access status</td> 
 
        <td>current time</td> 
 
       </tr> 
 
       <tr ng-repeat="d in Tdata"> 
 
        <td>{{ d.id }}</td> 
 
        <td>{{ d.title }}</td> 
 
        <td><img ng-src="{{}}" /></td> 
 
        <td>{{ d.body }}</td> 
 
       </tr> 
 
      </table> 
 
     </div> 
 
     </div> 
 
</div>

+0

Hai, wo Sie Änderungen vorgenommen haben. Ich bekomme keine modifizierte Lösung. – Swapna

1

fügen Sie einfach die folgende Codezeile in meinen Code nach tableParams Instanz erstellen.

$scope.tableParams.settings().$scope = $scope; 
+0

Ich habe keine Instanz tableParams erstellt, soll ich nach dieser Zeile hinzufügen. $ scope.tableParams.reload(); – Swapna

+0

'Sie sollten diese Zeile vor dem Neuladen der Tabelle params.'s hinzufügen –

+0

Ich habe den Code aktualisiert, wie Sie sagte immer noch Neuladen nicht definiert error.updated die Frage mit Code – Swapna

1
<script type="text/javascript"> 
     var app = angular.module('myApp', []); 
     app.controller('customersCtrl', function ($scope, $http, $timeout, $interval) { 
      getData = function(){ 
       $http.get("http://example.com/get") 
        .success(function(data) { 
         $scope.tableParams.settings().$scope = $scope; 
         $scope.reloadTable(); 
        }) 
        .error(function(data, status) { 
         console.error(status); 
        }) 
      } 

      $interval(function(){ 
       getData(); 
      }, 1000); 
</script> 
+0

können Sie das Skript-Tag einfügen? – Swapna

+0

}, 1000) - Unerwarteter Endfehler – Swapna

+0

können Sie bitte Ihren Arbeitscode in https://jsfiddle.net/ eingeben, damit wir ihn bearbeiten können, da wir Ihnen nur die Idee geben, nicht genau Ihren Code hier zu schreiben . – MGA

Verwandte Themen