2016-04-19 10 views
0

index.htmlファイルがロードされるときに、私のアプリに必要なすべてのAngularJSスクリプトをロードしようとしています。ロード中にAngularJSファイルを追加する

私はこれは大丈夫ファイルをロードしますが、私は結論してきた前後にテストした後、私はこのエラー

AngularJS error explanation

を取得するコード

<head> 
     ... 
      AngularJS libaries loads 
     ... 

     <script> 
      var main = { 
        root: [ 
         'core.js' 
        ] 
       }; 

      var iterateScripts = function(folder, path){ 
       for(var key in folder){ 
        if(key.toLowerCase() === 'root'){ 
         for(var i = 0; i < folder[key].length; i++){ 
          var script = document.createElement('script'); 
          script.type = 'text/javascript'; 
          script.src = path + '/' + folder[key][i]; 
          // console.info('script : '+ script.src) 
          document.getElementsByTagName('head')[0].appendChild(script); 
         } 
        } else { 
         var newPath = path + '/' + key; 
         // console.info('path : ', newPath, folder[key]) 
         iterateScripts(folder[key], newPath); 
        } 
       } 
      }; 

      iterateScripts(main, 'app/main'); 
      console.info(document.getElementsByTagName('head')[0]) 
     </script> 
    </head> 

のこの作品を作りました。このため

AngularJSがコンパイルされている間にページが読み込まれ、エラーが生成されるため問題が発生していることを示します。

これが真の場合、bodyタグが読み込まれる前に、どのように同様の方法で角型アプリケーションを読み込むことができますか?

+1

これは答えではありませんが、より良いオプションがあります。 ES6のインポートを使用する場合は、[require.js](http://requirejs.org/)やJSPMなどの使用を検討してください。 –

答えて

1

ng-appを使用する代わりに、自分で起動する必要があります。ここにそれに関する文書:https://docs.angularjs.org/guide/bootstrapがあります。

angular.element(document).ready(function() { 
    angular.bootstrap(document, ['myApp']); 
}); 

開始する準備ができている角度伝えます:すべてのスクリプトのロードが完了している

たら、あなたはこれに似たコードの一部を実行します。

+0

それはうまくいきました。ファイルがロードされたことを確認するタイマーを設定する必要がありました。 –

+1

タイマーを設定しないで、onloadプロパティを使用してください。 –

+0

ブートストラップを実行する前に、すべてのファイルがロードされているかどうかを確認するにはどうすればよいですか? –

関連する問題