2016-01-21 75 views
0

我有一个有1个表格和2个图表的页面,当按下刷新按钮时我将如何刷新我的图表和表格,因为我的表格和2个不同的图表来自单个页面上的3个不同的控制器。我想刷新所有这些,以便他们能够从Web服务中再次获取新值,并通过单击或单个刷新按钮来相应地重新创建页面。如何刷新页面以使用角度从服务中获取新值?

我也试过一些想法。

$scope.refreshChart = function(){ 
    alert("refresh"); 
    // $scope.dashloader = true; 
    $state.go('plm.creator'); 
    // $scope.dashloader = false; 
    console.log("On page refresh called; not from dashboard page"); 


} 

但这些不工作按我的预期,好心帮

回答

1

你可以尝试的一件事就是使用$ scope。$ broadcast(name,args)来广播一个事件(事件名称就是你组成的一个字符串),所有控制器都可以监听并运行他们的代码刷新。

控制器听与$ SCOP $上(事件监听器)

所以一个控制器会做到这一点。

$scope.$broadcast('MyRefreshEvent', args); 

和另一个控制器这样做:

$scope.$on('MyRefreshEvent', function (args) { 
    //handle refresh 
}); 
+0

感谢它为我工作 – Anky

1

您可以使用此重新加载整个页面:

$state.transitionTo($state.current, $stateParams, { 
      reload: true, 
      inherit: false, 
      notify: true 
     }); 

但我不建议这样做,我猜测你可以做一些重构,最终得到一个控制器,这取决于工厂的数量。