首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当作者说"AngularJS已经编译了DOM“时,这到底意味着什么?

问当作者说"AngularJS已经编译了DOM“时,这到底意味着什么?
EN

Stack Overflow用户
提问于 2015-08-26 14:55:08
回答 3查看 107关注 0票数 2

我正在看Lukas Ruebbelke的 AngularJS在行动中,

作者在整本书的许多地方,

视图 in AngularJS是由AngularJS编译之后的HTML。

我真的不明白编译过程的作用是什么,以及幕后到底发生了什么?

还是与将、HTML和控制器粘合到范围的行为有关?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-26 16:30:31

他在下一章中解释了这本书的作者:

只需将编译想象为将HTML和控制器与作用域粘合在一起。

​

​

AngularJS编译周期分为两部分:

代码语言:javascript
复制
1) the compilation phase and,
2) the linking phase.

​

​

​

​

当HTML完全加载时,AngularJS解析DOM,编译所有AngularJS指令的列表;这称为编译阶段。一旦完成了HTML的全部清单,AngularJS就进入了链接阶段,该阶段负责将AngularJS片段链接到适当的范围实例。

一旦AngularJS模板通过scope与其适当的控制器链接,绑定就会激活,并且这两个绑定(视图和控制器)可以通信。

​

​

编译过程是隐式的,连接b/w -- AngularJS模板和作用域--是无缝的,但您也可以手动编译模板和作用域。实际上需要这样做是一个边缘的情况,但是函数调用在说明正在发生的事情方面是非常有效的。

代码语言:javascript
复制
$compile(element.contents())(scope);

在方法调用中,我们获取HTML元素的内容,并使用scope对象压缩它。

票数 0
EN

Stack Overflow用户

发布于 2015-08-26 15:16:34

AngularJS编译以不同的方式进行。它直接在HTML而不是字符串上工作,并根据需要对其进行操作。它在模型和视图之间使用双向数据绑定来同步数据。

Agular的HTML编译器允许向任何HTML元素附加新的行为或属性。角将这些行为称为指令。AngularJS编译过程在web浏览器中进行,不涉及服务器端或预编译步骤。使用$compiler服务编译您的角HTML页面。

在HTML页面(静态DOM)完全加载之后,角编译过程就开始了。这种情况分两个阶段进行:

1.可压缩

它遍历DOM并收集所有指令。结果是一个链接函数。

2.链接

它将指令与作用域组合在一起,并生成一个活动视图。范围模型中的任何更改都反映在视图中,任何用户与视图的交互都反映在作用域模型中。编译和链接的概念来自C,您首先编译代码,然后链接到实际执行它。这个过程在AngularJS中也是非常相似的。

因此,我们可以说,视图 in AngularJS是在AngularJS.编译后的HTML。

票数 3
EN

Stack Overflow用户

发布于 2015-08-27 06:21:42

我相信您已经阅读了关于编撰的官方文档,但是我已经可以给您提供我对这个主题的理解。

是的,它实际上是控制器之间的胶水,它用模板的HTML保存范围中的数据。基本上,它做的是模板引擎(MustacheJS和co.)in :编译器实际上将HTML模板中的变量与其作用域中的相应值匹配。它更像编译您的指令,但是您可以在文档中更多地阅读这方面的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32230003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档