Javascript 如何使用angular刷新页面以从服务获取新值?

Javascript 如何使用angular刷新页面以从服务获取新值?,javascript,angularjs,ionic-framework,controllers,Javascript,Angularjs,Ionic Framework,Controllers,我有一个有1个表和2个图表的页面,当按下刷新按钮时,我如何刷新我的图表和表格,因为我的表格和2个不同的图表在一个页面上来自3个不同的控制器。我想刷新它们,以便它们能够再次从webservice获取新值,并通过单击或单个刷新按钮相应地重新创建页面 我也尝试了一些想法 $scope.refreshChart = function(){ alert("refresh"); // $scope.dashloader = true; $state.go('plm.creator');

我有一个有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");


}

但是这些没有按照我的期望工作,请帮助

您可以使用以下命令重新加载整个页面:

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

但我不建议这样做,我想您可以根据工厂的数量进行重构,最终得到一个控制器。

您可以使用以下方法重新加载整个页面:

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

但我不建议这样做,我想您可以根据工厂的数量进行一些重构,最终得到一个控制器。

您可以尝试的一件事是使用$scope.$broadcast(name,args)来广播所有控制器都可以监听的事件(事件名称只是您组成的字符串),然后运行其代码进行刷新

控制器使用$scop.$on进行侦听(事件,侦听器)

所以一个控制器会这样做:

$scope.$broadcast('MyRefreshEvent', args);
$scope.$on('MyRefreshEvent', function (args) {
    //handle refresh
});
另一个控制器会这样做:

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

您可以尝试使用$scope.$broadcast(name,args)来广播所有控制器都可以侦听的事件(事件名称只是一个由您组成的字符串),然后运行其代码进行刷新

控制器使用$scop.$on进行侦听(事件,侦听器)

所以一个控制器会这样做:

$scope.$broadcast('MyRefreshEvent', args);
$scope.$on('MyRefreshEvent', function (args) {
    //handle refresh
});
另一个控制器会这样做:

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