我正在制作一个小的诊断网页,并想让它看起来像是系统正在努力工作,在后台显示加载图像一段时间。
我不是程序员。所以我到处找一段代码,这是我试过的.但是justDelaying函数从不延迟后一个过程。似乎所有的进程都在同时运行。
app.controller('HardworkCtrl', function($scope, $timeout) {
$scope.hardWork = function() {
// start showing hard-working image
$scope.loading = true;
$scope.justDelaying = function() {
$timeout(function() {
// do nothing...
}, 5000);
}
$scope.justDelaying();
$scope.theAnswer = "42."
// stop showing hard-working image
$scope.loading = false;
};
};有什么想法吗?
发布于 2015-06-03 03:25:20
在"$timeout“中发生的任何事情都是异步的,所以只安排在稍后执行,而不会阻塞主执行。换句话说,调用$scope.justDelaying()后的指令会立即发生,而justDelaying中的指令会被延迟5秒。要使这些指令稍后执行,需要将它们移动到$timeout中,如下所示:
app.controller('HardworkCtrl', function($scope, $timeout) {
$scope.hardWork = function() {
// start showing hard-working image
$scope.loading = true;
$scope.delayThenDoStuff = function() {
$timeout(function() {
$scope.theAnswer = "42."
// stop showing hard-working image
$scope.loading = false;
}, 5000);
}
$scope.delayThenDoStuff();
};
};https://stackoverflow.com/questions/30610146
复制相似问题