AngularJS:我可以用一段时间间隔重复调用函数吗?

时间:2015-12-30 14:44:38

标签: javascript angularjs timer intervals repeat

有什么方法可以重复调用angularjs中的函数。我在我的控制器中使用它:

$interval( $rootScope.synchronization(), 1000 ); 

但它只调用一次同步功能。

3 个答案:

答案 0 :(得分:2)

删除括号:

$interval( $rootScope.synchronization, 1000 ); 

使用括号传递调用执行函数,然后将结果作为参数传递给$ interval。没有括号,你实际上就传递了方法。

答案 1 :(得分:2)

使用parens,你只是调用它,而不是传递对函数的引用。

var foo = function() {
  if (!(this instanceof foo))
    return new foo();
  return ""; // string, number, etc
};
foo.prototype.myPlugin = function () {
  alert("bar") // --> "bar"
};

foo().myPlugin();

答案 2 :(得分:1)

在Angular的$ interval中。 fn函数每延迟毫秒执行一次:

$interval(fn, delay, [count], [invokeApply], [Pass]);

例如,试试这个:

$scope.myVariable = 1;
$interval( function(){
    $scope.myVariable++;
}, 1000 ); 

所以$ interval上的第一个参数必须是一个函数,$ rootScope.synchronization()不是函数,它是对函数的调用。在您的情况下,将$ rootScope.synchronization()更改为$ rootScope.synchronization

$interval( $rootScope.synchronization, 1000 );