20

假设我想从 CDN 引用 angularjs,但如果对 CDN 的调用失败,例如指向本地 js 文件,我也想要一个后备。当谈到 JQuery 时,我已经看到了一些示例,您可以在 javascript 中执行以下操作:

if(typeof jQuery == 'undefined') {
    ....
}

我能做的 angularjs 有什么类似的吗?

4

9 回答 9

33
if(typeof angular == 'undefined') {
    ....
}
于 2014-01-29T00:00:39.200 回答
15

我只是通过点击F12(或右键单击并选择Inspect element,然后输入angular.

如果您收到消息Object {version: Object, callbacks: Object},则加载 angular。

如果您收到消息Uncaught ReferenceError: angular is not defined,则不会加载角度。

于 2015-05-27T16:42:43.877 回答
7

您可以通过测试JavaScriptangular对象是否为undefined.

然后,您应该回退到使用document.write

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js"></script>
<script type="text/javascript">
    if(typeof angular == 'undefined') {
       document.write(unescape("%3Cscript type='text/javascript' src='/Scripts/angular.min.js'%3E%3C/script%3E"));
     }
<script type="text/javascript">
于 2014-02-14T10:22:35.293 回答
5
if(window.angular === undefined) {
    ....
}
于 2015-08-21T09:08:11.623 回答
3

For angular 2 and newer try

window.ng

in a console

于 2018-02-28T12:14:40.880 回答
0

或者这样做:

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<script>(typeof angular != 'undefined') || document.write('<script src="js/angular.min.js")<\/script>')</script>
于 2014-08-21T22:38:59.923 回答
0

您可以尝试这样的事情,当角度应用程序完成加载时,这将返回 false。

window.getAllAngularTestabilities()[0]._ngZone.hasPendingMacrotasks
于 2021-06-28T07:19:37.010 回答
0

对于角度 11,您可以使用:

if(document.getElementsByTagName('app-root')[0].attributes['ng-version'] === undefined){
...
}
于 2020-12-21T17:17:59.440 回答
0

在开始知道代码是否已加载之前,我使用了这个简单的代码

<body ng-app="">
 {{3  + 3}}
</body>

如果这导致 6 则意味着您的角度已加载,否则未加载。

于 2017-04-15T18:35:57.610 回答