当作者说" AngularJS编译了DOM"时,它实际意味着什么?

时间:2015-08-26 14:55:09

标签: javascript angularjs

我正在浏览 Lukas Ruebbelke&#39> AngularJS in Action

作者在本书的许多地方都提到了

AngularJS中的 视图 是在 编译后的 HTML AngularJS 即可。

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

或者它与 粘合行为 HTML 有关带有 范围 控制器

2 个答案:

答案 0 :(得分:0)

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

只需将 编译 视为 将HTML和控制器与范围 粘合在一起。

enter image description here

AngularJS编译周期分为两部分:

$compile(element.contents())(scope);

enter image description here

enter image description here

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

AngularJS模板 已通过范围 与相应的 控制器相关联后,绑定将变为活动状态两个( 视图和控制器 )可以进行通信。

enter image description here

编译过程是隐式的,并且链接b / w AngularJS模板和范围是无缝的,但您也可以手动编译模板和范围。实际执行此操作的需要是一个边缘情况,但函数调用在说明正在发生的事情方面非常有效。

{{1}}

在方法调用中,我们将获取HTML元素的内容并使用范围对象进行压缩。

答案 1 :(得分:0)

我相信您已经阅读了Angular关于the compilation的官方文档,但我已经可以让您了解该主题。

是的,它实际上是控制器之间的粘合剂,它将范围内的数据与模板的HTML保存在一起。基本上,它做了模板引擎(MustacheJS和co。)所做的事情:编译器实际上将HTML模板中的变量与范围中的相应值进行匹配。 它更像是编译指令,但您可以在文档中阅读更多内容。