AngularJS: я могу повторно вызвать функцию с некоторым интервалом времени?

0

есть ли способ, которым я могу повторять функцию в угловом порядке. я использую это в своем контроллере:

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

но он вызывает функцию синхронизации только один раз.

Теги:
timer
repeat
intervals

3 ответа

1
Лучший ответ

В угловом интервале. Функция 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 );
  • 0
    Ваш последний пример содержит ошибку, когда вы создаете анонимную функцию, и вы на самом деле ничего не делаете внутри нее. Это должен быть либо $interval($rootScope.synchronization, 1000); или $interval( function(){ $rootScope.synchronization(); }, 1000 );
  • 0
    Вы правы, этот код был плохим, извините. Я исправлю это. Спасибо
2

С помощью parens вы вызываете его только, не передавая ссылку на функцию.

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

Удалите скобки:

$interval( $rootScope.synchronization, 1000 ); 

Передача вызова с помощью скобок выполняет функцию, а затем результат передается в $ interval в качестве аргумента. Без скобок вы сами передаете этот метод.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню