2014-09-18 3 views
0

Я пытаюсь реализовать простой таймер в angularJS. Но функция тайм-аута не работает, хотя это предлагается всеми.Функция таймаута в angularJS

<!doctype html> 
<html lang="en"> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular-sanitize.min.js"></script> 

</head> 
<body> 

<div ng-app="ss" ng-controller="mainCtrl"> 
{{timeInMs}} 
</div> 

<script> 
var myApp = angular.module("ss", ['ngSanitize']); 
myApp.controller('mainCtrl', function ($sce, $scope) { 

    $scope.timeInMs = 10; 

     var countUp = function() { 
      $scope.timeInMs+= 500; 
      $timeout(countUp, 500); 
     } 

     $timeout(countUp, 500); 


}); 

</script> 

</body> 
</html> 

Когда я комментирую «$ timeout (countUp, 500);» line, код работает без ошибок, но таймер не работает. Нужно ли включать еще какой-нибудь файл javascript?

Заранее спасибо.

+1

Вы должны вводить '$ timeout' в контроллер. – elclanrs

ответ

2

Вы должны впрыскивать $timeout службу к контроллеру

var myApp = angular.module("ss", []); 
 
myApp.controller('mainCtrl', function ($sce, $scope, $timeout) { 
 

 
    $scope.timeInMs = 10; 
 

 
    var countUp = function() { 
 
     $scope.timeInMs += 500; 
 
     $timeout(countUp, 500); 
 
    } 
 
    $timeout(countUp, 500); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="ss" ng-controller="mainCtrl"> 
 
    {{timeInMs}} 
 
</div>

Смежные вопросы