我有這樣的代碼:
$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);
}
}
當我開始startTimer
功能我得到錯誤:
Uncaught ReferenceError: startTimer is not defined (anonymous function)
我在做什麼錯?
我認爲你應該通過$ scope.startTimer作爲setTimeout的第一個參數。 – Rasalom 2014-12-03 13:08:07
請避免將字符串文字傳遞給setTimeout。請參閱:https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout#Passing_string_literals 它們在全局範圍內調用,而不是在角度風格的$範圍內調用。 – CKK 2014-12-03 13:11:59