我正在使用angularjs,我有一个创建票据的按钮,这个工作与http请求,用于调用php web,问题是http请求延迟x秒,人们可以在这里做出这么多点击延迟,结果,varius tickes创建,只有1个工作,他们我需要延迟按钮,但我不能使这个工作,请检查这个并注意解决方案应该在request
{{3}之外}
答案 0 :(得分:2)
Angular为此提供了$timeout
服务组件:
$timeout(function() {
$scope.betDelay=false;
}, 1000);
除此之外,当您使用$timeout
帮助程序时,它会自动为您执行脏模型检查(默认情况下,当您使用默认的window.setTimeout()
时,它会发生)。
基本上,Angular不会不断检查$scope
是否已经改变;它只检查组件生命周期中的关键点,$ timeout帮助您进入该生命周期。
请参阅更新后的JSFiddle:http://jsfiddle.net/Lt7aP/862/
作为替代方案,您还可以明确告诉$scope
它需要通过$apply()
执行脏检查。如,
setTimeout(function() {
$scope.betDelay=false;
$scope.$apply();
}, 1000);
答案 1 :(得分:0)
我对你的帖子的理解是,用户可以多次点击登录按钮,制作多个重复的条目(API没有时间检查现有记录,因为它被击中的速度非常快)。
我们通过检查按钮是否已被点击来处理此问题。创建一个名为man bash
的变量并将其设置为false。检查onClick是否为false。如果为false,则将其设置为true并发出请求。
$scope.isButtonClicked