【问题标题】:Angular2 where is the AppComponent directive specifiedAngular2 指定的 AppComponent 指令在哪里
【发布时间】:2016-05-03 15:56:42
【问题描述】:

我开始使用 Angular2,在完成教程后我遇到了一个问题。据说A browser ignores HTML tags and attributes that it doesn't recognize. So does Angular. 这就是为什么如果你想使用你创建的标签(就像另一个组件一样),你必须在组件内添加类似的东西:directives: [MyComponent]。 那么我的问题是,为什么我们不需要为AppComponent 提供相同的功能。 Angular 如何知道my-app 标签(我的AppComponent 的选择器)。

这要归功于有 AppComponent 引导程序的 main.ts 吗? :

import {bootstrap} from '@angular/platform-browser-dynamic';
import {AppComponent} from './app.component';

bootstrap(AppComponent);

【问题讨论】:

    标签: angular


    【解决方案1】:

    通过将AppComponent 传递给bootstrap(),您可以让Angular 知道AppComponentbootstrap() 然后将AppComponent 视为添加到父组件的directives(不存在)。

    根组件由DynamicComponentLoader.loadAsRoot()添加,主要目的是实例化根组件并将其添加到DOM中。

    【讨论】:

      【解决方案2】:

      这是因为bootstrap 的工作方式。不像组件模板那样编译主 HTML 文件。因此,主要组件使用其选择器附加到此文件中的 HTML 元素上。

      您可以通过 bootstrap() 方法显式指定要用作应用程序根组件的组件来实例化 Angular 应用程序。

      应用程序在现有浏览器 DOM 中引导,通常是 index.html。与 Angular 1 不同,Angular 2 不在 index.html 中编译/处理提供程序。这主要是出于安全原因,以及 Angular 2 中的架构更改。这意味着 index.html 可以使用提供程序等服务器端技术安全地处理。

      【讨论】:

        猜你喜欢
        • 2018-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多