我在 ASP.NET MVC 4 上使用 Angular JS,我使用脚本包从 cdn 加载,并在出现 cdn 故障时从源服务器加载,如下所示:
var jQuery = new ScriptBundle("~/bundles/scripts/jquery",
"//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js") // CDN
.Include("~/Scripts/jquery-{version}.js"); // Local fallback
jQuery.CdnFallbackExpression = "window.jQuery"; // Test existence
bundles.Add(jQuery);
和
var angular = new ScriptBundle("~/bundles/scripts/angular",
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.min.js")
.Include("~/Scripts/angular.js");
angular.CdnFallbackExpression = "window.angular";
bundles.Add(angular);
分别使用 window.jQuery 和 window.Angular 很容易检测 jQuery 或 AngularJS 是否存在。ASP.NET 捆绑机制评估 CdnFallbackExpression 文本以查看它是否需要回退到源服务器。
但是,在更高版本的 AngularJS 中,其他模块(例如 ngRoute 和 ngResource)被分离到自己的文件中,由开发人员自行决定加载。
如何检测是否加载了其他 AngularJS 模块?我可以在控制台中输入什么来查看 ngAnimate、ngRoute、ngResource 等是否成功从 CDN 加载?