答案 0 :(得分:4)
How Angular Application Gets Initiated 文章解释了角度应用程序如何启动的完整流程和步骤。
我们的浏览器显示了很多内容,并且index.html中没有它的痕迹。 这是怎么回事?这个奇怪的app-root标签有什么用呢?
根组件: app-root是我们为CLI创建的自己的组件之一。 等等,什么? 我知道我根本没有谈到Component,我将在下一篇文章中深入探讨,但在此之前让我们尝试解决内容加载位置的这个谜团。 让我们来谈谈Chotu为我们创建的根组件,即位于src / app文件夹中的app组件。 app.component.ts在某种程度上解决了文本之谜。我们看到一个名为app-root的选择器标签,与index.html中的文本相同。 app.component.html保存我们在浏览器中看到的文本模板。
显然,index.html和app组件之间似乎存在某种联系。
但是,如何在index.html中加载应用程序组件模板?我们来看看。 如果我们在浏览器中查看源代码,我们会看到底部自动注入的脚本文件很少(如inline.bundle.js),我们在raw index.html文件中没有看到。
当我们点击服务CLI命令并在index.html中自动添加时,这些文件被捆绑在一起。它们包含我们在app文件夹中编写的所有代码。 因此,在ng服务期间执行的第一个文件来自文件名main.ts. Angular主文件 - main.ts Main.ts在顶部有一堆导入,但我们要专门查看启动我们应用程序的那一行,我们将AppModule传递给app.module.ts的一部分方法 platformBrowserDynamic()。bootstrapModule(的AppModule)
仔细看看App.module.ts: app.module.ts文件有一个引导数组,它包含AppComponent,相同的根组件有一个奇怪的app-root标签。在这里,我们引用AppComponent然后将其app.component.html文件呈现为index.html。
第1步: main.ts文件已加载。它通过调用App.module.file来启动(启动)应用程序。
第2步: app.module.ts文件包含一组引导程序组件。在这里,我们找到了我们的根组件参考。
第3步:加载根组件,app.component.html中的模板文件成为index.html的一部分。
答案 1 :(得分:3)
Angular app在bootstrap的帮助下加载。你可以在main.ts查看。在System.js(angular 2/4)和Webpack(angular 5)的帮助下,它会被加载。
如果您要检查Appmodule。你可以在@ngModule里面看到属性bootstrap。它告诉第一个组件加载。在index.html中,您必须具有在引导程序中加载的组件的选择器。