Angularjs 如何每10秒调用一次函数?
如何每10秒调用一次函数Angularjs 如何每10秒调用一次函数?,angularjs,Angularjs,如何每10秒调用一次函数$timeout和setTimeout只调用函数dataTime一次,我想不断重复这一点,没有结束 angular .module('sfcLeftSiteBar') .component('leftSiteBar', { templateUrl: '/Panel/LeftSiteBar/Templates/_leftSiteBar.html', controller: ['$http', '$window', '$state', '$scope',
$timeout
和setTimeout
只调用函数dataTime
一次,我想不断重复这一点,没有结束
angular
.module('sfcLeftSiteBar')
.component('leftSiteBar', {
templateUrl: '/Panel/LeftSiteBar/Templates/_leftSiteBar.html',
controller: ['$http', '$window', '$state', '$scope', '$timeout', function ($http, $window, $state, $scope, $timeout) {
function dataTime() {
$http.post('/LeftSiteBar/TimeProvider').then(function (result) {
console.log("czas" + JSON.stringify(result))
$scope.datatime = result.data;
console.log("czas2" + JSON.stringify($scope.datatime))
})
}
// $timeout(dataTime, 10000);
setTimeout(dataTime, 10000);
}]
})
您可以使用
setInterval
代替setTimeout
,如下所示:
var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
setInterval(数据时间,10000)代码>
为了能够在以后清除间隔,您需要将setInterval
的返回值指定给一个变量,然后使用您的间隔作为参数调用clearInterval
,如下所示:
var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
但是由于您使用的是AngularJS
,因此可以使用内置的interval方法来处理调用函数中可能发生的任何更改,并自动触发摘要循环
var angulainterval=$interval(数据时间,10000)代码>
然后像这样取消它:
$interval.cancel(angularInterval)
您可以使用setInterval
而不是setTimeout
,如下所示:
var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
setInterval(数据时间,10000)代码>
为了能够在以后清除间隔,您需要将setInterval
的返回值指定给一个变量,然后使用您的间隔作为参数调用clearInterval
,如下所示:
var myInterval = setInterval(dataTime, 10000);
//clear interval at some point
clearInterval(myInterval);
但是由于您使用的是AngularJS
,因此可以使用内置的interval方法来处理调用函数中可能发生的任何更改,并自动触发摘要循环
var angulainterval=$interval(数据时间,10000)代码>
然后像这样取消它:
$interval.cancel(angularInterval)
Angularjs有一个内置的$interval
,您应该使用它而不是常规的setInterval
:
controller: ['$interval', '$scope', function($interval, $scope) {
function dataTime() {
console.log('function works');
}
// start interval
var interval = $interval(dataTime, 10000);
// call this method to stop interval
$scope.stop = function() {
$interval.cancel(interval);
};
}
关于Angularjs的更多信息有一个内置的$interval
,您应该使用它而不是常规的setInterval
:
controller: ['$interval', '$scope', function($interval, $scope) {
function dataTime() {
console.log('function works');
}
// start interval
var interval = $interval(dataTime, 10000);
// call this method to stop interval
$scope.stop = function() {
$interval.cancel(interval);
};
}
有关的更多信息,请使用angularjs$interval
服务处理该问题。它是一种角度服务,并随应用程序提供所需的一切
stop = $interval(function() {
dataTime();
}, 100);
如果需要,还可以取消连续执行
if (angular.isDefined(stop)) {
$interval.cancel(stop);
stop = undefined;
}
使用angularjs$interval
服务来处理这个问题。它是一种角度服务,并随应用程序提供所需的一切
stop = $interval(function() {
dataTime();
}, 100);
如果需要,还可以取消连续执行
if (angular.isDefined(stop)) {
$interval.cancel(stop);
stop = undefined;
}
单击按钮等待3秒钟,然后警告“你好”
单击关闭警报框后,3秒钟后将出现一个新的警报框。这将永远持续下去
试试看
函数myFunction(){
setInterval(函数(){alert(“Hello”);},3000);
}
单击按钮等待3秒钟,然后警告“你好”
单击关闭警报框后,3秒钟后将出现一个新的警报框。这将永远持续下去
试试看
函数myFunction(){
setInterval(函数(){alert(“Hello”);},3000);
}
使用setInterval
而不是setTimeout
。检查此示例的$interval。谢谢plunker,但我必须从后端花费时间。可能重复使用setInterval
而不是setTimeout
。检查此示例的$interval。谢谢plunker,但我必须从后端花费时间。可能重复of$interval只是window.setInternal的一个包装器,但我仍然认为我们应该使用它。它是的,但是添加了知道interval函数所做的任何范围更改的功能。基本上,$interval
将触发Angular的摘要循环,而setInterval
不会。您应该将所有这些添加到您的答案中。$interval只是window.setInternal的包装器,但我仍然认为我们应该使用它。它是的,但添加了一个功能,即知道interval函数所做的任何范围更改。基本上,$interval
将触发Angular的摘要循环,而setInterval
不会。您应该将所有这些添加到回答中。您需要最终取消该间隔。您需要最终取消该间隔。此答案不正确。需要澄清的是,在AngularJS中,应该使用$interval
而不是其他回答中解释的setInterval
。请再次阅读我的评论。我没有说不对。我说的不正确(完全相反)这个答案不正确。需要澄清的是,在AngularJS中,应该使用$interval
而不是其他回答中解释的setInterval
。请再次阅读我的评论。我没有说不对。我说的没错(完全相反)