AngularJS的工作原理


浏览:532 次

本质上,在浏览器中加载AngularJS webapp的方式与加载非AngularJS引用的方式相同。然而,它们的运作方式略有不同。

使用浏览器访问索引时。html,浏览器依次执行以下操作:

加载html并将其解析为DOM;

加载角度。js脚本;

AngularJS等待DOMContentLoaded事件的触发;

AngularJS查找ng-app指令,并根据该指令确定app边界;

使用ng app中指定的模块来配置$injector;

使用$injector创建$compile服务和$rootScope;

使用$compile服务编译DOM并将其链接到$rootScope;

nginit命令在作用域中分配变量名;

替换表达式{{name}},它将显示为“Hello World!” ; ; ;

当浏览器触发DOMContentLoaded事件时,AngularJS开始工作。它首先查找ng-app指令。[加载AngularJS时,如果document.readyState设置为complete,AngularJS也将开始初始化。]

如果浏览器在DOM中找到ng-app命令,它将自动为我们启动app。如果找不到该命令,Angular希望我们手动启动app。要手动启动Angular JSapp,可以使用Angular的bootstrap()方法。

var ele=文档。createElement(“div”);有棱角的引导(ele,['myApp']);复制

有棱角的引导(文档,['myApp']);复制

注意:Angularapp只能使用bottomstrap()方法启动一次。

Angular将使用ng-app命令的值来配置注射器服务。加载app后,注入器服务;加载app后,注入器将在app中创建编译服务。编译服务。rootScope的创建完成后,编译服务将接管它。它将编译,服务将接管。它将rootScope与现有DOM连接,然后从ng-app指令设置为根元素的位置编译DOM。

1、 视图的工作原理:当浏览器(从脚本标记中)提取脚本时,它会暂停DOM解析并等待检索脚本。当检索到Angular When js时,浏览器将执行它并设置一个事件侦听器来侦听浏览器的DOMContentLoaded事件。

注意:加载HTML文档并开始解析时,将触发DOMContentLoaded事件。

2、 编译阶段:编译服务将遍历DOM树并收集它找到的所有指令,然后将所有指令的链接函数组合成单个链接函数。然后,此链接函数将编译的模板连接到$rootScope。

3、 当在运行时触发事件时,将在指令(AngularJS)的上下文中调用事件处理程序。AngularJS调用include-scope apply()方法中的指令。Angular调用apply()方法中的指令。Angular在rootScope上启动$digest循环时启动整个过程,并将传播到所有子作用域。

当Angular进入摘要循环时,它将等待摘要循环和evalAsync队列清除。此外,摘要循环将等待摘要循环,并等待手表中的任何变化。然后将回调执行上下文返回到浏览器,DOM将呈现到指令的位置。

AngularJS修改了一般的Javascript工作流,并提供了自己的事件处理机制。这样,Javascript的上下文被分为两部分,一部分是原生Javascript上下文,另一部分是AngularJS上下文。只有AngularJS上下文中的操作才能享受Angular的数据绑定、异常处理、属性监视和其他服务。然而,对于外部人员(如本地Javascript操作、自定义事件回调、第三方库等),Angular并不总是保持沉默。您可以使用AngularJS提供的$apply()函数将这些外来者包含在AngularJS的上下文中,让Angular感知他们所做的更改nbsp; ;接下来,让我们看看这些循环在交互过程中是如何工作的?  1.首先,浏览器将始终处于侦听状态。一旦事件被触发,它将被添加到事件队列中,事件队列中的事件将被逐一执行。  2.如果事件队列中的事件被$apply()包装,它将进入AngularJS的上下文,其中fn()是我们要在AngularJS上下文中执行的函数。  3.AngularJS将执行fn()函数。通常,此函数会更改app的某些状态。  4.然后AngularJS将进入由两个小循环组成的$digest循环。一个循环用于处理$evalAsync队列(用于调度渲染视图之前需要处理的一些操作,通常

相关资讯:
什么是新订单系统

什么是新订单系统

查看
农产品分销软件如何帮助农产品分销

农产品分销软件如何帮助农产品分销

查看
如何成为一名程序员?这是重要的几点

如何成为一名程序员?这是重要的几点

查看
什么是域名归档?我们为什么要归档?备案后,您将获得以下好处!

什么是域名归档?我们为什么要归档?备案后,您将获得以下好处!

查看
上网速度慢。我该怎么办?

上网速度慢。我该怎么办?

查看