【发布时间】:2014-01-11 05:52:52
【问题描述】:
$http 的 AngularJS 文档http://docs.angularjs.org/api/ng.$http 声明“$http 服务在执行下一个 $digest() 之前不会真正发送请求。”。
我只是想知道为什么它不立即发出 HTTP 请求?这似乎是一个不必要的要求,我想知道我错过了什么。
更新:建议这是必要的,因为完成处理程序将需要更新摘要。但是,无论哪种方式,这些完成事件都需要稍后进行自己的 $apply/$digest 调用。
【问题讨论】:
-
也许你觉得这篇博文很有趣:benlesh.com/2013/08/angularjs-watch-digest-and-apply-oh-my.html 我猜它回答了你的问题。
-
在角度上下文之外调用 http 时确实如此,但我认为在正常情况下不会
-
阿杰是对的。您提到的那一行位于标题为“从 AngularJS 外部调用 $http”的部分中。我不知道在角度
digest循环之外发生的任何角度问题。如果您在digest内提出请求,它会“立即”发生。 -
但是为什么会有这种特殊行为呢?在任何情况下,为什么不直接发出 HTTP 请求?
-
我认为这是为了确保使用正确的数据而不是您“认为”的数据发出请求。
标签: angularjs