AngularJS如何异步遍历Angular模板(HTML+AngularJS指令)

How does AngularJS traverse the Angular template (HTML + AngularJS Directives) asynchronously?

本文关键字:指令 Angular 模板 遍历 HTML+AngularJS 异步 何异步 AngularJS      更新时间:2023-09-26

我正在阅读Brad Green和Shyama Sheshadari的AngularJS书,发现了以下文本:

基本启动流程如下所示:
1.用户请求您的应用程序的第一页
2.用户的浏览器与您的服务器建立HTTP连接,并加载包含模板的dex.html页面
3.以角度加载到页面中,等待页面完全加载,然后查找ng应用程序定义其模板边界
4.Angular遍历模板并查找指令和绑定。结果注册监听器和DOM操作,以及获取初始数据从服务器。这项工作的最终结果是该应用程序被引导模板被转换为作为DOM的视图
5.您连接到服务器以加载需要向用户显示的其他数据需要。

步骤1到3是每个Angular应用程序的标准步骤。在第4步5你有选择。这些步骤可以同步发生,也可以异步。为了提高性能,您的应用程序需要显示的数据第一个视图中的用户可以使用HTML模板避免多次请求。

第4步如何异步执行?此外,当作者说对于第一次迭代,数据可以与HTML一起发送时,他的意思是什么?HTML总是有来自Angular指令的数据,不是吗?

如果HTML包含指令,则该指令可能异步加载模板,例如

至于嵌入数据:想象一下,您的应用程序需要一个用户对象。现在,控制器可以从服务器加载该数据,以便应用程序可以使用该数据。但这需要另一个要求。

相反,您可以像这样将用户对象直接嵌入到页面中,例如:

<script ...>
var user = {
            name: 'Me',
            ...
           };

应用程序可以立即使用数据,而无需提出额外的请求。