2017-05-19 5 views
1

私は、ユーザーインターフェイスのためのjQueryメソッドの束を持つ外部jsファイルを持っています。ただし、Angularルーターは非同期であるため、他のページのユーザーインターフェイス要素は、DOMにまだ存在しないため、スクリプトによって適切にレンダリングされません。Angularで外部スクリプトを再実行するにはどうすればよいですか?

以前は、スクリプトからいくつかのメソッドを選択し、rerenderというメソッドに追加しましたが、これは混乱しています。

私の質問は、rerenderメソッドの中でスクリプト全体を再度読み込んで実行する方法があるかどうかを確認することでしたか?

答えて

1

外部スクリプトをインポートできます。コンストラクタの内部でそれを実行します。

declare let System: SystemJS; 

interface SystemJS { 
    import: (path?: string) => Promise<any>; 
} 

interface GlobalEnvironment { 
    SystemJS: SystemJS; 
    System: SystemJS; 
} 

はオプション2:

また、あなたが後にモジュールにこれを置くことができる

constructor() { 
    System.import('script-loader!bower_components/fullcalendar/dist/fullcalendar.min.js').then(()=>{ 
     this.render(); // Do whatever, for demonstration I call a render() method 
    }) 
} 

は、あなたのcustom-typingsあなたがSystemを宣言しているに確認してくださいインポートステートメント:

require('bootstrap/js/tooltip.js'); // For example 
+0

私は知っている限りシステムを使用しないAngular CLIを使用していますが、間違っている可能性があります。 Angular CLIでこれを確認できますか? – wilsonhobbs

+0

それを使っています。私はAngular-CLIも持っています! :D – SrAxi

+0

それは動作していないようです。インポートが実行されていますが、スクリプトが自分の知識に基づいて動作していません。 – wilsonhobbs

関連する問題