2017-10-04 22 views
0

我试图在一段时间内更新表上的数据。代码已经获得了一个带有URL和控制器的routeProvider,如下所示。我正在使用init()来获取控制器中的数据。如果我在$ interval()中使用init()方法,则表格会更新以前的值。我的意思是如果没有新的值,并且有10条记录存在,它就会变成20条记录。如何单独更新新值。Angularjs在使用routeProvider时自动刷新数据

最小app.js代码

App.controller('PlantCtrl', [ '$scope', 'PlantDetails', '$interval' 
, function($scope, PlantDetails, $interval,) { 

$scope.availablePlantDetailsTemp = []; 
    $scope.availablePlantDetails = []; 

init(); 

    function init() { 
     $scope.availablePlantDetailsTemp = PlantDetails.resource2.query(function(response) { 
     angular.forEach(response, function(item) { 
      if (item) { 
       $scope.availablePlantDetails.push(item); 
      } 
     }); 
     }); 
      } 
$interval(function() { 
       init(); 
       }, 5000); 
} ]); 

或者,如果我使用的决心内routeProvider做查询我怎么能​​叫$间隔()内的方法

回答

2

你仅仅指刚需要清除阵列前加入新的价值。 Array push方法将新值添加到数组,因此您正面临问题。

function init() { 
     $scope.availablePlantDetails = []; 
     $scope.availablePlantDetailsTemp = PlantDetails.resource2.query(function(response) { 
     angular.forEach(response, function(item) { 
      if (item) { 
       $scope.availablePlantDetails.push(item); 
      } 
     }); 
     }); 

$interval(function(){ 
Init() 
},1*2000) 
+0

感谢您的提示。你能否也请告诉我如何解决问题。我也会更新我的解决方案代码。 – user7620991

+0

我已经为此添加了答案。看到我的答案的第二行 – Ved

+0

是的,这很好。我看到了。我想知道如何从$ interval() – user7620991