构建具有更改计时器视图的自助服务终端应用程序的最佳方法

时间:2015-07-03 11:03:20

标签: angularjs

我有一个应用程序我的建筑有大约6个不同的视图,每个视图都有自己的控制器。

我希望在x秒后自动切换每个视图,并在最后一次切换回到开始。

如果您点击暂停按钮,我也希望能够暂停计时器。

我现在所拥有的(并且我确定这是一种更好的方法)是每个控制器中的一个计时器,一旦视图发生变化就会停止。

$rootScope.homeProm = $timeout(function(){
    $location.path('page2');
},12000);
$scope.$on('$locationChangeStart', function() {
    $timeout.cancel(homeProm);
});

在这种情况下使用状态会更好吗?并且服务会更好地用于计时器吗?

2 个答案:

答案 0 :(得分:0)

您可以使用$destroy $scope,这会更有意义。当控制器通过DOM取消注册时,它会调用您想要的代码。基本上这个块已用于清理代码。

$scope.$on('$destroy', function() {
    $timeout.cancel(homeProm);
});

答案 1 :(得分:0)

我将有一个包装器控制器:

<div ng-controller="WrapperController">
  <div ng-view=""></div>
<div>

每个视图都有自己的控制器,WrapperController将处理更改视图和停止。我不会在每个控制器中都有重复的代码。

这是我首先要做的,也许还有另一个更好的解决方案。