2017-01-14 8 views
0

Hallo hier ist mein json:Reload Daten-Controller json

[ 
    { 
     "name": "AAAAAA", 
     "data": "False", 
    }, 
    { 
     "name": "BBBBBB", 
     "data": "45%", 
    }, 
    { 
     "name": "CCCCCC", 
     "data": "12%", 
    }, 
    { 
     "name": "DDDDDD", 
     "data": "False", 
    } 
] 

Mein javascript:

var app = angular.module('app', ['ngRoute']); 
     app.service('service', function($http, $q){ 
      var deferred = $q.defer(); 

      $http.get('names.json').then(function(data){ 
       deferred.resolve(data); 
      }); 

      this.getNames = function() { 
       return deferred.promise; 
      } 
     }); 
     app.controller('FirstCtrl', function($scope, service, $http, $route) { 
     var vm = this; 
     vm.reloadData = function(){ 
      $route.reload(); 
     } 
      var promise = service.getNames(); 
      promise.then(function (data) { 
       $scope.names = data.data; 
       console.log($scope.names); 
      } 
     ); 

HTML:

<tbody> 
      <tr ng-repeat="name in names"> 
       <td>{{name.name}}</td> 
       <td>{{name.date}}</td> 
      </tr> 
     </tbody> 

<button ng-click="FirstCtrl.reloadData()">Reload</button> 

Ich möchte von JSON-Daten in der Steuerung laden, in reload() Funktion, aber es hat nicht funktioniert. Nach einem Klick auf den Button Neu laden passiert nichts. Vielen Dank im Voraus für Antworten!

+0

Sehen Sie das Protokoll von '$ scope.names'? – Olli

+0

Sehen Sie Fehler in der Konsole? –

+0

jeder Fehler in der Konsole, ich sehe Protokoll von $ scope.names @Olli – bafix2203

Antwort

0

ok versuchen $window.location.reload(); anstelle von $route.reload(); oder Sie können Refresh-Funktion anwenden.

$route.reload() wird zum Aktualisieren der Route verwendet und $window.location.reload(); wird zum Aktualisieren der Seite verwendet.

Prost :)

0

$window.location.reload() Versuchen Sie aber nicht vergessen, dass dies die App neu gestartet wird, um jede Funktion, nachdem sie nicht ausgeführt werden können, so haben Sie es platzieren strategisch nach dem, was Sie wollen getan ist getan.

0

Sie hatten ein paar Probleme mit dem von Ihnen gelieferten Code. Ich habe ein paar von ihnen repariert und deinen Code funktioniert. Sie können es hier ansehen:

https://plnkr.co/edit/DpRUJg520yew91t93oVr

Das sind die script.js ist:

var app = angular.module('app', []); 

app.service('service', function($http, $q){ 

      var deferred = $q.defer(); 

      $http.get('names.json').then(function(data){ 
       deferred.resolve(data); 
      }); 

      this.getNames = function() { 
       return deferred.promise; 
      } 
     }); 

    app.controller('FirstCtrl', function($scope, service, $http) { 
     var vm = this; 
     vm.reloadData = function(){ 
      console.log("reloading"); 
      vm.loadData(); 
     }; 

     vm.loadData = function(){ 
      var promise = service.getNames(); 
      promise.then(function (data) { 
       $scope.names = data.data; 
       console.log($scope.names); 
      }); 
     } 

     vm.loadData(); 
    }); 
+0

jetzt nur Daten in console.log neu laden, aber Tabelle @Shai Aharoni nicht neu laden – bafix2203