2017-03-20 17 views
0

私は別のスクリプトファイルから角度アプリケーション全体をロードする必要があるこの状況に遭遇しました。アイデアは、バックエンドからアプリケーションのバージョンを取得し、バージョンを取得すると、私は角度アプリを読み込む必要があります。 今、私は<script src="versionLoader.js">のようなものを持っています。ファイルの中で、私は角度アプリ全体をロードしようとしています。 versionFilesは角アプリ(app.js)および他のすべての成分のinitailizationから成る

動的に角度アプリをロードする

$.ajax({ 
    url: "url", 
    success: function(version){ 
    versionFiles(version.app_version); 
    }, 

}); 
var files=[angularFiles]; 

var versionFiles=function(version){ 
    for(var i=0; i<files.length; i++){ 
    var scriptElem= document.createElement("script"); 
    scriptElem.src="scripts/"+files[i]+"?v="+ version; 
    document.body.appendChild(scriptElem); 
    } 
} 

。私は<script src="scripts/services/tag.js?v=0.7"></script>のように文書に追加された要素を取得しますが、アプリケーションがモジュールが見つかりませんでしたエラーを読み込めません。

これは私の愚かかもしれません。それは非常に感謝します:)。

+1

スクリプトがロードされる前にng-appがhtmlで宣言されていますか?もしそうなら、ur ng-app宣言を削除し、手動で 'angle.bootstrap(elm、[module_name]) 'を使って手動でブートストラップを試してください。 –

+0

@ajaiJothi同じことをしましたが動作しませんでした.. ng-app指令を削除して手動でブートストラップしましたすべてのファイルが追加された後も同じエラーが返されます。しかし、動的に追加せずにインデックスページに設定ファイルを保存すると、ブートストラップが機能します。私が角度ファイルを動的に追加すると、アプリケーションは失敗します –

答えて

1

スクリプトを動的に注入しているので、ブートストラッピングはスクリプトがロードされる前に実行されます。約束を使用してこの問題を解決してください。

+0

感謝の男..魅力のようなもの。ファイルを追加した後にブートストラップが実行されるように手作業でしようとしていましたが、どこかで逃したと思います。 –

+0

あなたが答えに満足すれば、これを解決済みとマークできます –

関連する問題