2016-01-21 74 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 
     }); 

但我不建議這樣做,我猜測你可以做一些重構,最終得到一個控制器,這取決於工廠的數量。