sto usando angolare JS su ASP.NET MVC 4 e sto usando fasci di script per caricare da una CDN e caricare anche da il server di origine in caso di guasto CDN modo:Rilevare se le dipendenze angolari [angolare percorso, angolare di risorse, ecc] vengono caricati per CDN fallback
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);
e
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);
è abbastanza facile rilevare se jQuery o AngularJS esistono utilizzando rispettivamente window.jQuery e window.Angular. Il meccanismo di raggruppamento di pacchetti ASP.NET valuta il testo CdnFallbackExpression per vedere se è necessario ricorrere al server di origine.
Tuttavia, nelle versioni successive di AngularJS, altri moduli come ngRoute e ngResource sono separati nei propri file per essere caricati a discrezione degli sviluppatori.
Come faccio a rilevare se i moduli altri AngularJS sono caricati? Cosa posso digitare nella console per vedere se ngAnimate, ngRoute, ngResource, ecc. Sono riusciti a caricare dal CDN?
Forse 'angular.module ('moduleName')' opere. Può generare un'eccezione se il modulo non esiste, ma non sono sicuro che sia il modo giusto per farlo. – gustavohenke
@gustavohenke Stavo giocando con quello, ma hai ragione, l'iniettore si arrabbia. Molto arrabbiato. –
Se si può avvolgerlo in un blocco 'try..catch', forse questo è il modo in cui :) – gustavohenke