Tôi đang sử dụng Angular JS trên ASP.NET MVC 4 và tôi đang sử dụng gói tập lệnh để tải từ cdn và cũng tải từ các máy chủ gốc trong trường hợp của một thất bại cdn như vậy:Phát hiện nếu phụ thuộc góc [góc-đường, góc-tài nguyên, vv] được nạp cho dự phòng 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);
và
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);
Nó là khá dễ dàng để phát hiện nếu jQuery hoặc AngularJS tồn tại sử dụng window.jQuery và window.Angular tương ứng. Cơ chế gói ASP.NET đánh giá văn bản CdnFallbackExpression để xem liệu nó có cần quay trở lại máy chủ gốc hay không.
Tuy nhiên, trong các phiên bản sau của AngularJS, các mô-đun khác như ngRoute và ngResource được tách thành các tệp riêng của chúng để được tải theo quyết định của nhà phát triển.
Làm cách nào để phát hiện xem các mô-đun AngularJS khác có được tải không? Tôi có thể nhập gì vào bảng điều khiển để xem liệu ngAnimate, ngRoute, ngResource, v.v. đã tải thành công từ CDN chưa?
lẽ 'angular.module ('modulename') 'công trình. Nó có thể ném một ngoại lệ nếu module không tồn tại, nhưng tôi không chắc đó có phải là cách làm đúng hay không. – gustavohenke
@gustavohenke Tôi đã đùa giỡn với điều đó nhưng bạn nói đúng, vòi phun giận dữ. Rất giận. –
Nếu bạn có thể bọc nó trong khối 'try..catch', có thể đó là cách :) – gustavohenke