我从这篇文章中了解到,有角度解决的承诺无法执行他们的'然后'功能直到下一个摘要周期: Angular JS: Chaining promises and the digest cycle
原始问题的代码在http://jsfiddle.net/QZM4d
但是我不明白这个帖子的答案。首先,为什么单击一个在ng-click中不执行任何操作的按钮会触发摘要循环,同时单击原始ng-click =" go"按钮第二次不会触发摘要周期?
其次,如果我在setTimeout调用中删除$ scope。$ apply wrapper,如下所示:
setTimeout(function() {data.resolve("Some Data")}, 2000);
然后点击"点击我" 2秒后按钮会导致所有三个名称都正确显示,为什么?
我以某种方式怀疑它是因为如果没有值发生变化,角度不会触发摘要周期,但无法解释为什么我第二次点击那个"点击我"按钮不会更改name3的值。