2017-01-14 108 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