2014-09-06 1 views
-1

Я немного разочаровал о моей функции обратного отсчета:JS обратный отсчет разорвать мой angularjs код

/* countDowner */ 
var countDown = 5; 
function countDowner() { 
    if (countDown < 0) { 
     $("#warning").fadeOut(2000); 
     var countDown = 0; 
     return; // quit 
    } else { 
     $scope.countDown_text = countDown; // update scope 
     setTimeout(countDowner, 1000); // loop it again 
     countDown--; // -1 
    } 
} 
$scope.countDown_text = countDown; 
countDowner(); 

я положил его в angularjs Ctrl и это сломать мой код:/есть ошибка, но это для другого кода. когда я удаляю свой обратный отсчет, все работает хорошо. что случилось в моем обратном отсчете?

+3

Не использовать JQuery в Angular.js. –

+0

Создайте jsbin. Кроме того, вызовите setTimeout после того, как вы уменьшили 'countDown' var. – bencripps

+1

В angularjs $ timeout следует отдать предпочтение setTimeout – chriskelly

ответ

1

Причина, по которой код не работает, заключается в том, что вы повторно объявили переменную countDown.

// initialization 
var countDown = 5; 
// later ... 
var countDown = 0; 

Вот рабочий пример http://jsfiddle.net/6vkyezbu/