2015-10-28 2 views
2

Как я могу автоматически обновлять свою модель через 60 секунд?Обновить угловую модель через 60 секунд

У меня есть массив в $scope.tweets, содержащий список твитов. Я бы хотел, чтобы $scope.currentTweet вытащил твит из массива каждые 60 секунд.

Есть ли способ сделать это в угловом?

+0

Мне нравится ваш био человек: D палец вверх! – Fiido93

+0

@FiidoFirdauz haha, thanks – amingilani

ответ

4

Да, вы можете. У AngularJS есть $ interval для вас.

  1. Inject $ interval в ваш контроллер.
  2. Зарегистрируйте его для вызова функции обновления каждые 60 секунд.

Пример:

myApp.controller('MyCtrl', ['$scope', '$interval', function($scope, $interval){ 
    $scope.tweets = []; 
    $scope.currentTweet = null; 
    var myUpdater = $interval(function(){ 
     $scope.currentTweet = $scope.tweets.pop(); 
    }, 60*1000); 

    //And you can cancel the interval anytime you want by calling this: 
    $interval.cancel(myUpdate); 
}) 
+2

Функция, переданная в '$ interval', автоматически заверяется в' $ apply'. Вызов '$ scope. $ Apply()' изнутри будет приводить к ошибке «дайджест». –

+0

О, это моя ошибка, спасибо! –

1

Посмотрите на услугу $interval, которая представляет собой обертку углов вокруг родной функции setInterval.

$interval(function() { 
    $scope.currentTweet = $scope.tweets.shift(); 
}, 60 * 1000); 
Смежные вопросы