$watch を理解するのに苦労しています。値をインクリメントするためにタイマーと一緒に使用しています.5秒後に続行したい場合はユーザーにプロンプトを表示しようとしています. 「キャンセル」を選択すると、タイマーのカウントが停止します。
フィドルはこちら: http://jsfiddle.net/nicktest222/VuuEK/4/
// Increment with $timeout
$scope.counter = 0;
$scope.onTimeout = function () {
$scope.counter++;
mytimeout = $timeout($scope.onTimeout, 1000);
};
var mytimeout = $timeout($scope.onTimeout, 1000);
// Watch
$scope.$watch($scope.counter, checkTime);
function checkTime() {
console.log($scope.counter);
if ($scope.counter === 5) {
var check = confirm('Do you want to continue?');
if (check === false) {
$scope.stop();
}
}
}
$scope.counter 変数が毎秒変化しているため、checkTime 関数はページの読み込み時に 1 回起動します。