2016-03-10 25 views
5

私はjavascriptライブラリを使用するコンポーネントを持っています。現時点では私は、依存関係にAngular2コンポーネントの外部js libファイルのロード

public ngOnInit() { 
    System.import('lib').then(() => this.createControl()); 
} 

をロードするためにsystem.jsを使用していますしかし、コンポーネントの初期化中に、この遅延は、コンポーネントを消費し、別の問題を引き起こしています。基本的には、createControl関数が遅すぎます。

すべての依存関係がダウンロードされるまで、コンポーネント全体の初期化を角度で遅らせることは可能ですか?

+0

角度が読み込まれる前にスクリプトタグに依存関係を読み込まないようにしましょう。私はjs.cookieやlodashのようないくつかの図書館でこれを行います。それらは、角度が進む時間によってすでに読み込まれています。 – brando

+0

私はよりモジュラーなアプローチを探しています:)最初はすべての依存関係を読み込めました。両側にプロ/欠点がありますが、私は個人的にモジュラー/コンポーネント化アプローチに傾いています。 – Umair

+0

アプリにルートがありますか? – dfsq

答えて

0

それはすべての依存関係が

をダウンロードされるまでの角度で全体のコンポーネントの初期化を遅らせるためにだけ、ファイルの依存関係としてlibを追加することも可能です。コンポーネントが含まれているファイルの先頭でこれを置く:

import * as lib from "lib" 

これは効果的に「LIB」前にアプリケーションの起動をロードします。

+0

これは機能しません。 "lib"モジュールを見つけることができないタイスクリプト・コンパイラ・エラーを受け取る – Umair

+0

修正: 'vendor.d.ts'で' declare module "lib" {var foo:any; export = foo; } ' – basarat

関連する問題