2016-05-03 3 views
1

私はAngular2を使い始めています。チュートリアルを終えた後、私は質問がありました。 A browser ignores HTML tags and attributes that it doesn't recognize. So does Angular.だから、作成したタグ(インスタンス別のコンポーネントなど)を使いたい場合は、コンポーネント内にdirectives: [MyComponent]のようなものを追加する必要があります。 私の質問は、なぜ我々はAppComponentのために同じものを必要としないのですか?角度my-appタグ(セレクタ私のAppComponent)についてはどのように知っていますか?Angular2は指定されたAppComponentディレクティブです

AppComponentのブートストラップがあるmain.tsに感謝しますか? :

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

bootstrap(AppComponent); 

答えて

1

bootstrap()AppComponentを渡すを使用すると、角度に知られているAppComponentを作ります。 bootstrap()は、それが親成分(これは存在しない)のdirectivesに加えられたようにAppComponentを処理する。

ルートコンポーネントは、DynamicComponentLoader.loadAsRoot()によって追加されます。これは、ルートコンポーネントをインスタンス化してDOMに追加することを主な目的としています。

1

それは方法のためbootstrapのためです。メインのHTMLファイルはコンポーネントテンプレートとは異なりコンパイルされません。そのため、セレクタを使用して、このファイルのHTML要素にメインコンポーネントが添付されます。

アプリケーションのルートコンポーネントとして使用するコンポーネントを、bootstrap()メソッドを使って明示的に指定することによって、Angularアプリケーションをインスタンス化します。

アプリケーションは、既存のブラウザDOM(通常はindex.html)内でブートストラップされます。 Angular 1と​​は異なり、Angular 2はindex.htmlのプロバイダをコンパイル/処理しません。これは、主にセキュリティ上の理由、およびAngular 2のアーキテクチャ上の変更によるものです。これは、プロバイダなどのサーバー側のテクノロジを使用してindex.htmlを安全に処理できることを意味します。

関連する問題