簡體   English   中英

AngularJS-$ watch和$ timeout

[英]AngularJS - $watch and $timeout

難以理解$ watch。 我將它與計時器配合使用以增加值-嘗試在五秒鍾后提示用戶是否要繼續。 如果他們選擇“取消”,則計時器停止計數。

小提琴在這里: 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();
        }
    }
}

checkTime函數在頁面加載時觸發一次,我希望它會觸發每個增量,因為$ scope.counter變量每秒都在變化。

$watch需要一個角度表達式,這是您想要的:

    $scope.$watch('counter', checkTime);

為了擴展Jason的答案,您可以在任何作用域的任何變量上使用$watch ,因為該參數只是一個字符串,因此在控制器內部,您也可以在$rootScope上進行監視!

$scope.$watch('counter', ...)

$rootScope.$watch('rootCounter', ...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM