AngularJS - $ watch和$ timeout

Nic*_*ick 1 javascript angularjs

很难理解$ 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

checkTime函数在页面加载时触发一次,我希望它会触发每个增量,因为$ scope.counter变量每秒都在变化.

Jas*_*aat 5

$watch 采取角度表达,这是你想要的:

    $scope.$watch('counter', checkTime);
Run Code Online (Sandbox Code Playgroud)