我开始使用Angular2,在完成教程后我得到了一个问题。据说λ> fib 4
Call: fib 4
Call: fib 2
Call: fib 0
Call: fib 1
Call: fib 3
Call: fib 1
Call: fib 2
Call: fib 0
Call: fib 1
3
如果你想使用你创建的标签(比如实例中的另一个组件),你必须在组件中添加类似A browser ignores HTML tags and attributes that it doesn't recognize. So does Angular.
的东西。
然后我的问题是,为什么我们不需要directives: [MyComponent]
的相同内容。 Angular如何知道AppComponent
标签(我my-app
的选择器)。
是否归功于那些有AppComponent引导程序的main.ts? :
AppComponent
答案 0 :(得分:1)
将AppComponent
传递给bootstrap()
后,您将AppComponent
告知Angular。 bootstrap()
然后将AppComponent
视为已添加到父组件的directives
(不存在)。
根组件由DynamicComponentLoader.loadAsRoot()
添加,其主要目的是实例化根组件并将其添加到DOM。
答案 1 :(得分:1)
这是因为bootstrap
的工作方式。与组件模板不同,不编译主HTML文件。因此,主要组件使用其选择器附加在此文件中的HTML元素上。
通过bootstrap()方法显式指定要用作应用程序根组件的组件来实例化Angular应用程序。
应用程序在现有浏览器DOM中引导,通常是index.html。与Angular 1不同,Angular 2不会在index.html中编译/处理提供程序。这主要是出于安全原因以及Angular 2中的体系结构更改。这意味着可以使用服务器端技术(如提供程序)安全地处理index.html。