【问题标题】:How Angular JS works when I defined ng-app in html tag?当我在 html 标签中定义 ng-app 时,Angular JS 是如何工作的?
【发布时间】:2017-01-12 03:26:11
【问题描述】:

从上到下解析Html。

但是当我将 ng-app 定义为 html 标签并从 html 标签内的脚本标签调用它的库时。

那么 AngularJS 是如何知道我已经将 ng-app 定义为 html 标签的呢?

参考下面的代码

<html ng-app="myFirstApp">
 <head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
 </head>
</html>

【问题讨论】:

  • 这是两个不同的东西。 从上到下解析Html。是的。 AngularJS(无论它包含在哪里),在 HTML 上从上到下搜索 ng-app 属性。在 Angular 执行此操作之前,它只是另一个自定义属性。在 AngularJS 中它有特殊的含义。

标签: javascript angularjs


【解决方案1】:

Angular 在DOMContentLoaded 事件或当 angular.js 脚​​本在当时被评估 document.readyState 设置为'complete'。此时 Angular 会寻找 ngApp 指定您的应用程序根的指令。如果ngApp 找到指令后 Angular 会:

  • 加载与指令关联的module
  • 创建应用程序injector
  • 编译将ngApp指令作为根的DOM 汇编。这允许你告诉它只处理一部分 DOM 作为 Angular 应用程序。

官方developer guide 文档中有很多有用的信息,比如这篇关于bootstrapping 的文章。您也可以通过tutorial

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2011-10-23
    • 2011-08-06
    • 2014-10-15
    相关资源
    最近更新 更多