angularJS:如何使用 setTimeout
angularJS: how to use setTimeout?
function performerController($scope, $http) {
this.getPerformerOnline = function (performerid) {
setTimeout(this.getPerformerOnline, 3000, performerid);
$http.get("ajax.php", {
params:{
"action":"getPerformerOnline", "performerid":performerid
}
}).success(function(data) {
console.log(data);
$scope.performer = data;
});
};
this.getPerformerOnline(<?=$user->id?>);
}
此函数仅调用 TWICE :console.log(data);显示 2 次结果。
如何每 3000 毫秒调用 getPerformer在线?
你需要
一个$interval
而不是超时,也避免在角度中使用setTimeout
,而是使用角度$timeout
服务...
function performerController($scope, $http, $interval) {
this.getPerformerOnline = function (performerid) {
$interval(this.getPerformerOnline, 3000, performerid);
$http.get("ajax.php", {
params:{
"action":"getPerformerOnline", "performerid":performerid
}
}).success(function(data) {
console.log(data);
$scope.performer = data;
});
};
this.getPerformerOnline(<?=$user->id?>);
}
不要在功能本身中设置超时。而是定义函数,然后使用 $interval
服务重复调用它。
function performerController($scope, $http, $interval) {
this.getPerformerOnline = function (performerid) {
$http.get("ajax.php", {
params:{
"action":"getPerformerOnline", "performerid":performerid
}
}).success(function(data) {
console.log(data);
$scope.performer = data;
});
};
$interval(this.getPerformerOnline, 3000, performerid);
}
您可以使用
$interval。使用$interval服务的优点是,它在内部调用$digest循环。
function MainController($scope, $interval) {
$scope.intervalFunction = function(){
//your code goes here
}
var intervalPromise = $interval(function () { $scope.intervalFunction() }, 5000);
//best practice destroying the $interval on scope destroy
$scope.$on('$destroy', function () { $interval.cancel(intervalPromise); });
}
希望这对您有所帮助。
相关文章:
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- setTimeout可以与闭包内的函数一起使用吗
- 继续使用javascript中的setTimeout
- JS-我的循环使用setTimeout停止循环
- 使用setTimeout()时调用Stack
- 如何在使用setTimeout()时停止累积
- setTimeout无法使用javascript和svg
- JavaScript setTimeout,使用调用来更改此设置
- Node.js-有没有一种方法可以访问传递给'setTimeout'使用返回的timeoutObject
- setTimeout 立即使用 jQuery 触发
- setTimeout 是使用 javascript 执行异步函数的好解决方案吗?
- 如何将块UI与setTimeout一起使用,并在表单提交时防止默认
- setTimeout 在使用 jquery load() 时重叠
- setTimeout 在使用函数继承时不起作用
- 为什么javascript方法在与setTimeout一起使用时会失去与对象的连接
- 在setTimeout上使用.apply或.call——如何以跨平台的方式获得这个上下文
- setTimeout中使用JavaScript闭包
- 在setTimeOut中使用addClass实现的on - click动画只在incewhat中发生
- 在setTimeout中使用async是否有效
- 在Javascript中,setTimeout中使用的变量的作用域是什么?