2014-08-28 115 views
1

我读布拉德·格林和谢亚马Sheshadari的AngularJS书和整个下面的文字来:AngularJS如何异步遍历Angular模板(HTML + AngularJS指令)?

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

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

步骤4如何异步发生?另外,当他说第一次迭代时,数据可以和HTML一起发送,作者意味着什么? HTML将始终有来自Angular指令的数据,不是吗?

回答

0

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

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

相反,你可以直接嵌入用户对象插入到页面这样的,例如:

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

应用程序可以立即使用数据而不是额外的请求。

+0

第4步说Angular遍历模板并将其转换为最终的DOM。是否有可能让这个进程异步运行?我不明白作者在这里的含义。 – 2014-08-28 09:17:23

+0

另外,你是什么意思嵌入数据? 如果我有一个角度的应用程序,我写这样的事情:

{{greeting}}

那么这将始终来自角度。没有办法第一次加载它,然后使用角度加载它。 – 2014-08-28 09:19:06

+0

@SidharthPanwar我更新了我的答案。 – zeroflagL 2014-08-28 09:43:50