Używam Angular JS na ASP.NET MVC 4 i używam pakietów skryptów do załadowania z CDN, a także ładuję z serwer pochodzenie w przypadku awarii cdn tak:Wykryj, czy zależności kątowe [droga kątowa, kątowe, itp.] Są załadowane dla stanu zapasowego 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);
i
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);
jest to dość łatwe do wykrycia, jeśli jQuery lub angularjs istnieją użyciu window.jQuery i window.Angular odpowiednio. Mechanizm sprzedaży ASP.NET ocenia tekst CdnFallbackExpression, aby sprawdzić, czy musi on wrócić do serwera źródłowego.
Jednak w późniejszych wersjach AngularJS inne moduły, takie jak ngRoute i ngResource, są rozdzielane na własne pliki, które mają być wgrane według uznania deweloperów.
Jak wykryć, czy załadowane są inne moduły AngularJS? Co mogę wpisać w konsoli, aby zobaczyć czy NgAnimate, ngRoute, ngResource itp. Udało się załadować z CDN?
Może 'angular.module ('moduleName')' prace. Może wyrzucić wyjątek, jeśli moduł nie istnieje, ale nie jestem pewien, czy jest to właściwy sposób. – gustavohenke
@gustavohenke Bawiłam się tym, ale masz rację, wtryskiwacz się denerwuje. Bardzo zły. –
Jeśli umieścisz go w bloku 'try..catch', być może to jest sposób :) – gustavohenke