我有一个包含1个表和2个图表的页面,如何在按下刷新按钮的同时刷新我的图表和表格,因为我的表格和2个不同的图表来自单个页面上的3个不同的控制器。我想刷新所有这些,以便他们能够再次从webservice获取新值,并通过单击或单个刷新按钮相应地重新创建页面。
我也尝试了一些想法。
$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");
}
但这些并不符合我的期望,请帮助
答案 0 :(得分:1)
您可以使用以下方法重新加载整页:
$state.transitionTo($state.current, $stateParams, {
reload: true,
inherit: false,
notify: true
});
但我不建议这样做,我猜你可以根据工厂的数量做一些重构,最终得到一个控制器。
答案 1 :(得分:1)
你可以尝试的一件事是使用$ scope。$ broadcast(name,args)来广播一个事件(事件名称只是你编写的一个字符串),所有控制器都可以监听,然后运行他们的代码来刷新。
控制器用$ scop。$ on(事件,监听器)监听
所以一个控制器会这样做:
$scope.$broadcast('MyRefreshEvent', args);
和另一个控制器会这样做:
$scope.$on('MyRefreshEvent', function (args) {
//handle refresh
});