加载时添加AngularJS文件

时间:2016-04-19 13:06:14

标签: javascript angularjs dom

因此,当AngularJS文件加载时,我正在尝试加载我的应用中需要的所有index.html脚本。

为此我已经制作了这段代码

 <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 error explanation

经过来回测试后,我得出的结论是问题是因为在AngularJS编译时页面加载,这会产生错误。

如果是这样,我怎样才能在加载body标记之前以类似的方式加载我的角度应用?

1 个答案:

答案 0 :(得分:1)

你必须自己引导角度,而不是使用ng-app。以下是相关文档:https://docs.angularjs.org/guide/bootstrap

完成所有脚本加载后,您将运行一段与此类似的代码:

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

这告诉角度它已准备好开始。