我正在尝试模拟一个延迟,所以我有一个Angular控制器函数:
vm.signup = function (model) {
vm.mode: "busy";
var x = true;
$timeout(function () { x = false; }, 4000);
vm.mode: "success";
};
在模式设置为忙碌和设置为成功之间,我没有4秒的延迟。我错过了什么?
答案 0 :(得分:4)
$timeout
是一种异步性能。并且延迟块内的所有内容都会发生延迟。
因此,操作顺序如下:
vm.mode = busy;
var x = true;
vm.mode = "success";
x = false;
我认为你想要在你的超时功能中使用vm.mode = 'success'
:
vm.signup = function (model) {
vm.mode = "busy";
var x = true;
$timeout(function () {
x = false;
vm.mode = "success";
}, 4000);
};
答案 1 :(得分:0)
$ timeout调用指定延迟后传入的任何函数。您需要将vm.mode = "success"
放在传递给$ timeout的函数中。
类似于sleep(),类似于C#中的函数,以及整个线程暂停的情况。