我这里有一个代码,我在那里使用不同的控制器。我想把这个代码转移到工厂但却无法这样做。我会更清楚地解释一下。以下是我的代码。
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();
}
我不知道如何在我的工厂函数中传递函数。我怎样才能做到这一点?
谢谢,
答案 0 :(得分:1)
我不确定您要实现的目标,但这是$timeout
服务的标准用例。
$timeout(myfunction,noOfSeconds * 1000);
在你的情况下
$timeout(scope.loginUser,4 * 1000);
<强>更新强> 你可以做点什么
runCounter : function(countDown, callback) {
$timeout(callback,countDown* 1000);
}