(一)自动加载
ng-app是angular的一个指令,代表一个angular应用(也叫模块)。使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载。也就是说,ng-app是可以带属性值的。如果想要实现自动加载,那么就不能让ng-app带有属性值。
<html> <body ng-app> <div>div1:{{1+3*2}}</div> <script src="angular.js"></script> </body> </html>
<!doctype html> <html xmlns:ng="http://angularjs.org" ng-app> <body> ... <script src="angular.js"> </body> </html
利用ngapp标示你需要自动引导应用程序的根节点,一般典型为html tag。在DOMContentLoaded事件触发Angular会自动寻找ngapp作为应用的根节点,如果找到则会进行如下操作:
加载module(模块)相关directive(指令)。
创建应用程序
injector
(Angular的注入机制).编译处理ng-app作为根节点的指令。这里允许你自定义选择DOM节点作为应用根节点。
自动加载条件:
1、不含ng-app,无法自动加载,这个比较好理解。
<html> <body> <div>div1:{{1+3*2}}</div> <script src="angular.js"></script> </body> </html>
2、含有2个ng-app,那么只会自动加载第一个,这个也好理解。
<html> <body> <div ng-app>div1:{{1+3*2}}</div> <div ng-app>div2:{{1+3*2}}</div> <script src="angular.js"></script> </body> </html>
3、ng-app带有属性,不能自动加载
<html> <body> <div ng-app="app1">div1:{{1+3*2}}</div> <script src="angular.js"></script> </body> </html>
4、不带属性的在前,带属性的在后。ng-app标记的模块可以自动加载
<html> <body> <div ng-app>div1:{{1+3*2}}</div> <div ng-app="app1">div1:{{1+3*2}}</div> <script src="angular.js"></script> </body> </html>
5、带属性的在前,不带属性的在后。ng-app标记的模块不能自动加载
<html> <body> <div ng-app="app1">div1:{{1+3*2}}</div> <div ng-app>div1:{{1+3*2}}</div> <script src="angular.js"></script> </body> </html>
(二)手动加载
如果想对对初始化有更多的控制权,可以采用自定义手动引导方法初始化代替angular的自动初始化。比如你需要在angular编译模板之前做一些事情,比如改变模板某些内容。手动引导方式将会如下:
<!doctype html> <html xmlns:ng="http://angularjs.org"> <body> Hello {{'World'}}! <script src="http://code.angularjs.org/angular.js"></script> <script> angular.element(document).ready(function() { angular.bootstrap(document); }); </script> </body> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?