gpt4 book ai didi

javascript - 在 AngularJS 中创建一个简单的计时器

转载 作者:行者123 更新时间:2023-11-29 15:41:13 27 4
gpt4 key购买 nike

我有一个输入字段,我想显示一个简单的计数器(每秒更新一次)。

<input class="form-control input-lg" type="text" placeholder="00" ng-model="ss">

每个开始/停止按钮在 Controller 中都有关联的ng-click方法

查看

<button ng-click="start()">Start</button>

我可以在 Controller 函数中完成一个计数器吗?

$scope.start = function() {

};

我试过这样的东西

$scope.start = function() {
if($scope.counting === true) return false;
$scope.counting = true;
$scope.counter = setInterval($scope.updateCount, 1000);
};

$scope.updateCount = function() {
$scope.ss++;
}

但是当调用 start 函数时,该值不会持续更新输入 ng-model='ss'。它只是将其设置为 1,然后间隔似乎不会继续更新。

或者我需要创建服务吗?如果是这样,有人可以指出正确的方向,说明需要如何设置该服务才能将更新的计数值返回给 Controller 。

像往常一样感谢任何帮助。

最佳答案

您需要在 setInterval 回调中使用 $scope.$apply() 以便更新值。

$scope.updateCount = function() {
$scope.ss++;
$scope.$apply();
}

通常建议使用 $timeout 而不是 setInterval(因为它不需要 $apply),这是一个很好的方法这样做:https://stackoverflow.com/a/14238039/1266600 .

关于javascript - 在 AngularJS 中创建一个简单的计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647248/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com