【问题标题】:What can I check to make sure angular has finished loading and can be used我可以检查什么以确保 angular 已完成加载并且可以使用
【发布时间】:2012-10-04 21:44:20
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我不知道 getScript() 方法。这非常适合我的需要。谢谢!
    猜你喜欢
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2011-05-07
    相关资源
    最近更新 更多