我正在浏览Lukas Ruebbelke AngularJS in Action ,
作者在书中的很多地方都提到了,
AngularJS 中的 View 是经过编译后的HTML AngularJS。
我真的不明白编译过程的作用以及幕后到底发生了什么?
或者它是否与 粘合 HTML 和 的行为有关 Controller 具有范围?
最佳答案
AngularJS 编译以不同的方式工作。它直接作用于 HTML DOM 而不是字符串,并根据需要对其进行操作。它在模型和 View 之间使用双向数据绑定(bind)来同步数据。
Agular 的 HTML 编译器允许将新的行为或属性附加到任何 HTML 元素。 Angular 将这些行为称为指令。 AngularJS 编译过程发生在 Web 浏览器中;不涉及服务器端或预编译步骤。 Angular 使用 $compiler 服务来编译 Angular HTML 页面。
Angular 编译过程在 HTML 页面(静态 DOM)完全加载后开始。它分两个阶段发生:
1.编译
它遍历 DOM 并收集所有指令。结果是一个链接函数。
2.链接
它将指令与范围结合起来并生成实时 View 。范围模型中的任何更改都会反射(reflect)在 View 中,并且用户与 View 的任何交互都会反射(reflect)在范围模型中。 编译和链接的概念来自C,首先编译代码,然后链接它以实际执行它。 AngularJS 中的过程也非常相似。
所以我们可以说,AngularJS中的 View 就是经过AngularJS编译后的HTML。
关于javascript - 当作者说 "AngularJS has compiled the DOM"时,它实际上意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32230003/