【发布时间】:2012-08-24 00:05:25
【问题描述】:
看一下http://jsfiddle.net/2NJ7y/3/(AngularJS 1.0.1 版本)上的示例。有一个简单的应用程序,正在等待输入幸运数字。如果数字等于 7,我将幸运数字重置为空。如果我多次输入数字 7,有时/随机幸运数字会留在输入字段中。为什么?这种行为如何解决?谢谢。
【问题讨论】:
-
这是个好问题。你在这里进入了一种竞争状态,这就是它没有得到正确解决的原因。有兴趣找到解决此问题的正确方法。
-
使用$timeout service怎么样? jsfiddle.net/2NJ7y/10 但我一直不明白为什么它的延迟为 0。
-
@Artem:这不是很好的解决方法,但可以。但我仍在等待最终的解决方案。 :-) 谢谢。
-
@Artem,Misko 的评论表明 $timeout(以前称为 $defer)在浏览器呈现后运行:github.com/angular/angular.js/issues/734#issuecomment-3657272 我想这有助于避免控制器函数之间的竞争条件尝试更改值,浏览器呈现“7”......也许??
-
@Mark 谢谢。我还找到了good explanations about setTimeout(fn, 0)。
标签: angularjs