2015-08-27 40 views
0

试图加载有条件使用Modernizr的,如果CDN失败,希望它加载从本地机库中,但它不工作角库,所以可能是什么原因有条件负荷角度图书馆

Modernizr.load([ 
     { 
      load: "//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular.min.js", 
      complete: function() { 
       if(!window.angular){ 
        Modernizr.load("bower_components/angular/angular.min.js"); 
       } 
      } 
     }]); 

感谢

+0

SLM,任何错误? – Yeysides

+0

斯坦达特角库缺失错误 未捕获的ReferenceError:角不定义 cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular.min.js:37未捕获 错误:[$注射器:modulerr ] http://errors.angularjs.org/1.4.4/$injector/modulerr?p0=modalApp&p1=Error%3...udflare.com%2Fajax%2Flibs%2Fangular.js%2F1.4.4%2Fangular.min.js% 3A19%3A381) –

回答

1

好吧,就像错误说的那样,Modernizr不知道角度是什么,这意味着你的回退不起作用。看看这段代码:

Modernizr.load([ 
     { 
      load: '//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js', 
      complete: function() { 
       if (!window.jQuery) { 
        Modernizr.load('js/libs/jquery-1.6.4.min.js'); 
       } 
      } 
     }, 
     { 
      // This will wait for the fallback to load and 
      // execute if it needs to. 
      load: 'needs-jQuery.js' 
     } 
    ]); 

此代码尝试从Google CDN首先加载jQuery。一旦脚本被下载(或者如果失败),将会调用与complete有关的功能。该函数检查以确保jQuery对象可用,如果不是Modernizr用于加载本地jQuery脚本。在发生所有这些后,将会加载一个名为needs-jQuery.js的脚本。 http://weblogs.asp.net/dwahlin/detecting-html5-css3-features-using-modernizr

编辑

所以改变这种

load: "//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular.min.js", 

这个

load: https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.4/angular.min.js, 
+0

好的我已经使用这个代码为我的jQuery条件加载,如何检查Angular和加载,如果它不存在? –

+0

此代码适用于jQuery,但它不适用于Angular,并且您建议的解决方案不幸运。 也许没有什么像window.angular。我不知道也许有条件地加载Angular库是不可能的。不知道。 –

+0

\t