2017-01-14 66 views
0

你好,这里是我的JSON:刷新数据控制器JSON

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

我的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> 

我想从JSON在控制器重新加载数据,在reloadData ()函数,但它没有工作。点击按钮重新加载后没有任何反应。 在此先感谢您的答案!

+0

你看到'$ scope.names'的日志? – Olli

+0

您是否在控制台中看到任何错误? –

+0

控制台中的任何错误,我看到$ scope.names的日志@Olli – bafix2203

回答

0

ok试试$window.location.reload();代替$route.reload();或者您可以申请刷新功能。

$route.reload()用于刷新路由,$window.location.reload();用于刷新页面。

干杯:)

0

尝试$window.location.reload()但请记住,这将重新启动应用程序,所以任何功能后,它可能不那么你必须把它进行战略性你想要做的事情完成之后。

0

您提供的代码存在一些问题。我修复了其中的一些,并使您的代码正常工作。你可以在这里查看:

https://plnkr.co/edit/DpRUJg520yew91t93oVr

这是的script.js:

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

现在只重新载入console.log中的数据,但表不重载@Shai Aharoni – bafix2203