在 AngularJS 中创建一个简单的计时器
Creating a simple timer in AngularJS
我有一个输入字段,我想显示一个简单的计数器(每秒更新)。
<input class="form-control input-lg" type="text" placeholder="00" ng-model="ss">
每个启动/停止按钮在控制器中都有关联的ng-click
方法
视图
<button ng-click="start()">Start</button>
我可以在控制器功能中完成计数器吗?
$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,然后间隔似乎不会继续更新。
还是需要创建服务?如果是这样,有人可以指出我正确的方向,说明需要如何设置该服务,以便将更新计数值返回给控制器。
像往常一样,任何帮助都值得赞赏。
您需要
在setInterval
回调中使用$scope.$apply()
,以便更新值。
$scope.updateCount = function() {
$scope.ss++;
$scope.$apply();
}
通常建议使用$timeout
而不是setInterval
(因为它可以防止需要$apply
),这里有一个好方法:https://stackoverflow.com/a/14238039/1266600。
相关文章:
- Moment/Jquery-一个简单时间线的愚蠢问题
- 问题用moment JS制作一个简单的时间表
- 测试一个简单的javascript按钮
- 用Jquery map和moment js制作一个简单的时间线
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 调试一个简单的jQuery函数;想知道是否与其他代码冲突
- 一个简单的粘性头jQuery脚本的问题
- Sencha Touch使一个简单的按钮工作
- html表单,它有文本和表,现在我想在一个简单的文本文件中保存和检索数据,如何实现它
- 如何在Javascript中定义一个简单的自动重启倒计时
- 如何使一个简单的HTML文件成为wordpress中可用的页面
- 如何用D3添加一个简单的圆弧
- angularjs做一个简单的倒计时
- 创建一个简单的处理 p5.js 库
- 是否有一个简单的 JQuery 过程来替换页面上每段内部文本的字符串
- 如何在构造函数中创建一个简单的DOM元素,并在调用时将其附加到元素中
- 是否可以将PHP的一个简单片段重新编码为javascript
- 尝试创建一个简单的求和计算器
- 如何使用jquery添加一个简单的转换
- 正在寻找一个简单的JavaScriptHTMLGUI构建器,我可以将其嵌入到我的网站中