2015-08-27 65 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