我是Angular JS的初学者。我正在浏览下面的链接。 http://docs.angularjs.org/tutorial/step_00引导角JS的Bootstrapping是什么意思?
什么是引导文件?他们在哪里?
什么是引导程序的自动引导和手动初始化?我读下面的手动初始化的缺点..从链接http://docs.angularjs.org/guide/bootstrap
任何人都可以解释到底什么是缺点吗?
我是Angular JS的初学者。我正在浏览下面的链接。 http://docs.angularjs.org/tutorial/step_00引导角JS的Bootstrapping是什么意思?
什么是引导文件?他们在哪里?
什么是引导程序的自动引导和手动初始化?我读下面的手动初始化的缺点..从链接http://docs.angularjs.org/guide/bootstrap
任何人都可以解释到底什么是缺点吗?
虽然上面的每个人都已经很完美地回答了,但我发现了我在找的东西,但仍然看起来像是一个工作示例。
虽然理解,请在下面的例子AngularJS自动/手动引导可以帮助很多:
AngularJS:自动引导过程:
角初始化/白手起家时自动DOMContentLoaded事件或当angular.js脚本被下载到浏览器并且document.readyState被设置为完成。此时AngularJS查找ng-app指令。当找到ng-app指令时,Angular将:
加载与指令相关联的模块。
创建应用程序注入器。
编译从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.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/
注:
你不应该使用的NG-应用指令手动自举 您的应用程序时。
您不应该混淆自动和手动方式引导 您的应用程序。
定义模块,控制器,服务等手动 引导您的应用程序在上面的例子中定义。
Bootstrapping等同于初始化或启动您的Angular应用程序。有两种主要的方式来做到这一点。
首先是通过在HTML添加ng-app
到一个元件,像这样自动自举:
<html ng-app="myApp">
...
</html>
第二是从JavaScript来引导,像这样,具有通过angular.module("myApp", []);
创建应用后
angular.bootstrap(document, ['myApp']);
的ng-app
指令指示页面的哪个部分(全部或部分,由你)是角应用程序的根。 Angular读取该根内的HTML并将其编译为内部表示。这个阅读和编译是自举过程。
手动引导是当您编写代码来执行引导过程而不是使用ng-app
指令时。
添加到戴夫Swersky的答案(我是新来的角,以便纠正我,如果我错了):
下面的图片,从angularjs.org bootstrap tutorial拍摄。解释戴夫的表述。
的HTML,与NG-应用指令中的元素内,通过AngularJS编译。例如:然而
{{ 1 + 2 }}
,加入了NG-应用指令:
会使因为这
<body ng-app="module">
<div> {{ 1 + 2 }} </div>
</body>
呈现这样的:
3
这是因为ng-app“引导”了身体标记并告诉Angular创建内容的“内部表示”。内部表示当然是3
。从教程:
“如果找到ng-app指令,那么Angular将编译DOM 将ng-app指令视为编译的根。这 允许你告诉它来治疗只是DOM的一部分作为角 应用。”
角还加载与NG-程序指令相关的模块(‘中的角教程组件’),创建应用注射器(用于依赖注入)。
角JS自动引导进程
AngularInit()被调用用于经由jqLite准备功能自动引导捆扎第一角API。
<body ng-app=ngAppDemo> <div ng-controller="ngAppDemoController" > I can add: {{a}} + {{b}} = {{ a+b }} </div> </body>
ng-app="ngAppDemo" will be extracted.
从角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提供了多种针对多个平台的引导选项。本页面描述了两个选项,都针对浏览器。
您提供了一些示例代码,但没有答案... – Krystian
@Krystian:我留下了定义,因为在其他答案中已经很好地解释了定义。顺便说一句好的建议,我也添加了定义。可能现在这个答案可以以更合适的方式提供帮助。 –