Javascript 重构我的代码
我这里有一个代码,我在那里使用了不同的控制器。我曾想过将此代码转移到工厂,但无法做到这一点。我会解释得更清楚。下面是我的代码Javascript 重构我的代码,javascript,angularjs,refactoring,Javascript,Angularjs,Refactoring,我这里有一个代码,我在那里使用了不同的控制器。我曾想过将此代码转移到工厂,但无法做到这一点。我会解释得更清楚。下面是我的代码 scope.countDown = 4; scope.runCounter = function() { scope.countDown -= 1; if ( scope.countDown > 0) timeout(scope.runCounter, 1000);
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();
}
我不知道如何在工厂函数中传递函数。我怎样才能做到这一点
谢谢,我不确定您想要实现什么,但这是
$timeout
服务的标准用例
$timeout(myfunction,noOfSeconds*1000)代码>
就你而言
$timeout(scope.logiuser,4*1000)代码>
看
更新
你可以这样做
runCounter : function(countDown, callback) {
$timeout(callback,countDown* 1000);
}
我的主要问题是如何将控制器中的代码转换为工厂代码?因为我在不同的控制器中使用运行计数器。谢谢你的回复,它可以工作,但是你会如何显示计数器/倒计时?