引导在angularJS中是什么意思?

我是Angular JS的初学者。 我正在通过下面的链接。 http://docs.angularjs.org/tutorial/step_00

什么是引导文件? 他们在哪里?

什么是引导的自动引导和手动初始化? 我从链接http://docs.angularjs.org/guide/bootstrap读下面的手动初始化的缺点

任何人都可以解释到底什么是劣势?

虽然上面的每个人都回答完美,我发现我在找什么,但仍然是一个工作的例子似乎失踪。

在下面的示例中了解有关自动/手动引导在AngularJS中的帮助很多:

AngularJS:自动启动:

Angular在DOMContentLoaded事件时自动初始化/自动引导,或者当angular.js脚本被下载到浏览器并且document.readyState被设置为完成。 此时AngularJS查找ng-app指令。 当ng-app指令被find时,Angular会:

  1. 加载与指令相关的模块。

  2. 创build应用程序注入器。

  3. 编译从ng-app根元素开始的DOM。

这个过程被称为自动引导。

<html> <body ng-app="myApp"> <div ng-controller="Ctrl">Hello {{msg}}!</div> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> <script> var app = angular.module('myApp', []); app.controller('Ctrl', function($scope) { $scope.msg = 'Nik'; }); </script> </body> </html> 

JSFiddle: http : //jsfiddle.net/nikdtu/ohrjjqws/

AngularJS – 手动引导:

您可以使用angular.bootstrap()函数手动初始化angular度应用程序。 该函数将模块作为参数,并应在angular.element(document).ready()函数中调用。 当DOM准备好进行操作时,会激发angular.element(document).ready()函数。

 <html> <body> <div ng-controller="Ctrl">Hello {{msg}}!</div> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> <script> var app = angular.module('myApp', []); app.controller('Ctrl', function($scope) { $scope.msg = 'Nik'; }); //manual bootstrap process angular.element(document).ready(function () { angular.bootstrap(document, ['myApp']); }); </script> </body> </html> 

JSFiddle: http : //jsfiddle.net/nikdtu/umcq4wq7/

注意 :

  1. 手动引导应用程序时,不应使用ng-app指令。

  2. 你不应该混淆自动和手动引导你的应用程序的方式。

  3. 定义模块,控制器,服务等手动引导您的应用程序之前定义在上面的示例中。

参考: http : //www.dotnettricks.com/books/angularjs/interview

Bootstrapping相当于初始化或启动Angular应用程序。 主要有两种方法。

第一个是通过将ng-app添加到HTML中的元素来自动引导,如下所示:

 <html ng-app="myApp"> ... </html> 

第二个是通过angular.module("myApp", []);创build应用程序之后,从JavaScript引导,就像这样angular.module("myApp", []);

 angular.bootstrap(document, ['myApp']); 

加上Dave Swersky的回答(我是Angular的新手,所以如果我错了,请纠正我):

以下图片取自angularjs.org bootstrap教程 。 解释什么Dave阐明。

在这里输入图像说明

在ng-app指令元素中的HTML由AngularJS编译。 例如:

 <body> <div> {{ 1 + 2 }} </div> </body> 

会呈现为这样的:

 {{ 1 + 2 }} 

但是,添加ng-app指令:

 <body ng-app="module"> <div> {{ 1 + 2 }} </div> </body> 

呈现如下:

 3 

这是因为ng-app“引导”了body标签,并告诉Angular创build内容的“内部表示”。 内部表示当然是3 。 从教程:

“如果find了ng-app指令,那么Angular会编译处理ng-app指令的DOM作为编译的根,这样你就可以告诉它只把DOM的一部分作为Angular应用程序。

Angular也加载与ng-app指令相关的模块(Angular tutorial中的“module”),并创build一个应用程序注入器(用于dependency injection)。

ng-app指令指示页面的哪一部分(全部或部分,由您决定)是Angular应用程序的根。 Angular读取该根内的HTML并将其编译为内部表示。 这个阅读和编译是自举过程。

手动引导是当你编写代码来执行引导过程而不是使用ng-app指令时。

Angular JS自动引导过程

AngularInit()是第一个通过jqLit​​e ready函数调用自动引导绑定的Angular API。

  1. ready()调用DOM准备好了
  2. angularInit()从ready()中调用
  3. Angular Init使用element.querySelectorAll()从DOM中提取ng-app元素,其格式为'ng:app','ng-app','x-ng-app','data-ng-app'。
  <body ng-app=ngAppDemo> <div ng-controller="ngAppDemoController" > I can add: {{a}} + {{b}} = {{ a+b }} </div> </body> 
 ng-app="ngAppDemo" will be extracted. 
  1. 使用正则expression式模块被提取,例如。 module =“ngAppDemo”
  2. 最后bootstrap(..)被调用,从而创build全局注入器和rootcope,并引导angular度的应用程序。

从Angular NgModules页面:

 import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { } 

最后,@ NgModule.bootstrap属性将这个AppComponent标识为引导组件。 当Angular启动应用程序时,它将AppComponent的HTML呈现放置在DOM中,位于index.html的元素标记内。

在main.ts中引导

通过在main.ts文件中引导AppModule启动应用程序。

Angular提供了针对多个平台的各种引导选项。 本页面描述了两个选项,都针对浏览器。