1

我正在开发一个我们需要动态加载(不要问)angular.js 和我们的 js 文件(directives.js、controllers.js 等)的应用程序。我<script>在 DOM 中插入了 Angular 和我们的 js 文件的标签,发现当你这样做时,脚本文件是异步加载的。angular由于较大的 angular.js 文件尚未返回,因此我收到有关未定义的错误。

无论如何知道角度何时加载并准备好使用?我的第一个想法就是看看是否angular已定义,例如typeof angular != 'undefined'. 但是,我担心 angular 将被定义,但尚未完全设置,我会遇到其他错误。此检查是否足以开始添加模块和使用angular对象?或者我可以检查对象本身的某些东西以确保它已完成设置?

作为旁注,我将手动引导应用程序,因此检查引导后设置的内容对我不起作用。任何帮助,将不胜感激。谢谢。

4

1 回答 1

1

如果您使用的是 jQuery,您可以链式加载各种外部脚本文件:

$.getScript('js/angular.js', function() {
    $.getScript('js/controllers.js', function() {
        $.getScript('js/next.js', function() {
            // [...]
        });
    });
});

更多信息:http ://api.jquery.com/jQuery.getScript/

当然,潜在的缺点是,如果一个脚本加载失败(ajax 问题,服务器负载高,等等),将不会触发成功回调,也不会加载后续脚本。

于 2012-10-03T21:59:23.570 回答