我有这个代码:
$scope.startTimer = function (){
$scope.settings.showMinutes = false;
$scope.settings.showStart = false;
$scope.settings.showPause = true;
$scope.settings.showReset = true;
$scope.settings.showDonate = false;
if ($scope.settings.seconds <= 0) {
$scope.settings.seconds = 59;
$scope.settings.minutes -= 1;
if ($scope.settings.minutes < 0) {
$scope.settings.showPause = false;
$scope.settings.stopTimer = true;
return;
}
setTimeout('startTimer()', 1000);
} else {
$scope.settings.seconds -= 1;
setTimeout('startTimer()', 1000);
}
}
Run Code Online (Sandbox Code Playgroud)
当我启动startTimer功能时,我收到错误:
未捕获的ReferenceError:未定义startTimer(匿名函数)
我究竟做错了什么?
代替:
setTimeout('startTimer()', 1000);
Run Code Online (Sandbox Code Playgroud)
使用angularjs等效:
$timeout($scope.startTimer, 1000);
Run Code Online (Sandbox Code Playgroud)
编辑:正如Cherniv所建议的那样,将$timeout依赖项注入控制器非常重要,因此如果您有一个名为的控制器myCtrl:
angular.module("myApp").controller("myCtrl", ['$timeout', function($timeout){
$scope.startTimer = function(){
//Your code
}
}]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1065 次 |
| 最近记录: |