重构我的角度代码

时间:2013-12-19 03:24:35

标签: javascript angularjs refactoring

我这里有一个代码,我在那里使用不同的控制器。我想把这个代码转移到工厂但却无法这样做。我会更清楚地解释一下。以下是我的代码。

scope.countDown     = 4;
scope.runCounter = function() {
            scope.countDown -= 1;            
            if ( scope.countDown > 0) timeout(scope.runCounter, 1000);              
            else scope.loginUser(); //can be different function
        };

它的作用只是一个倒数计时器。当倒计时达到0时,它将调用范围函数。至于我的考虑,我有这个:

我的工厂:

runCounter : function(countDown, callback) {
        rootScope.countDown = countDown;
        var self = this;

        rootScope.countDown -= 1;            
        if ( rootScope.countDown > 0) timeout(self.runCounter, 1000);              
        // else callback();
      }

我不知道如何在我的工厂函数中传递函数。我怎样才能做到这一点?

谢谢,

1 个答案:

答案 0 :(得分:1)

我不确定您要实现的目标,但这是$timeout服务的标准用例。

$timeout(myfunction,noOfSeconds * 1000);

在你的情况下

$timeout(scope.loginUser,4 * 1000);

请参阅documentation

<强>更新 你可以做点什么

runCounter : function(countDown, callback) {
    $timeout(callback,countDown* 1000);      
}