我正在看Lukas Ruebbelke的 AngularJS在行动中,
作者在整本书的许多地方,
视图 in AngularJS是由AngularJS编译之后的HTML。
我真的不明白编译过程的作用是什么,以及幕后到底发生了什么?
还是与将、HTML和控制器粘合到范围的行为有关?
发布于 2015-08-26 16:30:31
他在下一章中解释了这本书的作者:
只需将编译想象为将HTML和控制器与作用域粘合在一起。

AngularJS编译周期分为两部分:
1) the compilation phase and,
2) the linking phase.


当HTML完全加载时,AngularJS解析DOM,编译所有AngularJS指令的列表;这称为编译阶段。一旦完成了HTML的全部清单,AngularJS就进入了链接阶段,该阶段负责将AngularJS片段链接到适当的范围实例。
一旦AngularJS模板通过scope与其适当的控制器链接,绑定就会激活,并且这两个绑定(视图和控制器)可以通信。

编译过程是隐式的,连接b/w -- AngularJS模板和作用域--是无缝的,但您也可以手动编译模板和作用域。实际上需要这样做是一个边缘的情况,但是函数调用在说明正在发生的事情方面是非常有效的。
$compile(element.contents())(scope);在方法调用中,我们获取HTML元素的内容,并使用scope对象压缩它。
发布于 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。
发布于 2015-08-27 06:21:42
我相信您已经阅读了关于编撰的官方文档,但是我已经可以给您提供我对这个主题的理解。
是的,它实际上是控制器之间的胶水,它用模板的HTML保存范围中的数据。基本上,它做的是模板引擎(MustacheJS和co.)in :编译器实际上将HTML模板中的变量与其作用域中的相应值匹配。它更像编译您的指令,但是您可以在文档中更多地阅读这方面的内容。
https://stackoverflow.com/questions/32230003
复制相似问题