2016-12-13 39 views
4

要素が存在するかどうかによって、動的にブートストラップするアプリコンポーネントが可能ですか?角2動的起動ストラップアプリコンポーネント

は何かなどをしたいだろう...

export class AppModule { 

constructor() { 

} 

ngDoBootstrap(appRef: ApplicationRef) { 
    for(let component of components) { 
     if(document.querySelector(component.selector)){ 
      appRef.bootstrap(component); 
     } 
    } 
} 

} 

答えて

0

いいえ、あなたは、要素がDOMで利用可能である場合は、自分自身をチェックしてからplatformBrowserDynamic().bootstrapModule(AppModule);またはappRef.bootstrap(component);を呼び出すか、そうでなければ、それを呼び出すスキップする必要があります。

https://github.com/angular/angular/issues/11730#issuecomment-252677321

+0

だから何とか輸入部品に目を通すと、ループであっセレクタに対してチェックすることはできませんを参照してください。私がこの質問をする理由は、50以上のコンポーネントが潜在的に存在する可能性があるからです。もちろん、私のアプリケーションモジュールファイルが混乱を招くようになり、今後も維持することが難しくなります。 –

+1

あなたは何を意味するのかよく分かりません。あなたは潜在的に50以上のコンポーネントをブートストラップしていますか? –

+1

@Johnwilliams '@ NgModule'' entryComponentsで宣言するのと同じ配列を使うことができます:[components] ' – yurzui