2016-08-24 7 views
0

私は、angle2のルートコンポーネントを動的に/ setTimeout()を使用してロードする必要があります。 可能ですか。例: Angular2ルートコンポーネントを動的にロードする方法

<body> 
<hello-world>Loading...</hello-world> 
</body> 

私は「こんにちは、世界」は、ページの読み込みの数秒後に追加します。私はページの負荷のカスタムコンポーネントを持つことはできません。

plnkrが役立ちます。

答えて

1

インデックスページにイベントを追加し、このイベントをmain.tsの角度ファイルで聞くことができます。

のindex.html:

... 
<body> 
    <my-app>Loading...</my-app> 

    <script> 
     setTimeout(function() { 
      document.dispatchEvent(new Event('startNgLoad')) 
     }, 5000) 
    </script> 
    </body> 
... 

main.ts:

document.addEventListener('startNgLoad',() => { 
    platform.bootstrapModule(AppModule); 
}) 
+0

main.tsでのsetTimeout内のルートモジュールをロードすることができますindex.htmlの読み込み開始時に動的に追加して後で 'startNgLoad'を実行できますか? – raju

+0

うまくいけば、 'document.body.appendChild(document.createElement(" my-app "))'をディスパッチイベントの前、または 'platform.bootstrapModule()'の前に置く。 – antkhnvsk

+0

これはうまくいく。 – raju

0

あなたは、私が タグを持ってカント

setTimeout(function() { 
    platformBrowserDynamic().bootstrapModule(AppModule); 
},1000) 
+0

5秒の設定タイムアウト後にsetTimeout => insert( '')することはできますか – raju

関連する問題