2013-07-30 41 views
-2

有誰知道在IE8中使用AngularJS的樣板模板。在文檔中有一整段專門討論如何使用IE8獲取Angular,看起來所需的步驟非常具體,但到目前爲止,我還沒有像ng-include這樣的命令取得成功AngularJS - IE8 html模板

如果步驟非常具體,那麼我認爲有人有一些樣板文件代碼確認可以與IE8一起工作,如果能夠共享,我們將不勝感激。至少如果它不起作用,那麼你至少知道你已經從已知的基線開始,並且可以更容易地隔離問題。

+2

這不是它在這裏的工作原理。相反,顯示你的嘗試,告訴我們什麼沒有工作,以便我們可以幫助你解決它。 –

回答

1

雖然這個問題應該更加詳細,但我可以說我以前做了什麼來管理IE8代碼。

我不再擔心boilerplates和生產率殺死程序,而是讓yeoman爲我處理所有這些事情。

http://yeoman.io/

約曼類似於鐵路的佣金,這將有助於你建立你的應用程序更快的自以爲是的助手。只需下載generator-angular和yeoman即可開始。

https://github.com/yeoman/generator-angular

如果你不想自耕農集成到你的產品,看自耕農如何放下IE8樣板,並使用一個測試應用程序複製。

我希望這會有所幫助。

4

我已經創建了2個使用AngularJS的生產應用程序,只需幾個JavaScript'修復程序就可以在IE8中運行。

首先,如果開發者控制檯未打開,則console.log語句將失敗。我固定它用下面的代碼段js的會派生的角應用初始頁面上:

// Avoid `console` errors in browsers that lack a console. 
      (function() { 
       var method; 
       var noop = function() {}; 
       var methods = [ 
        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 
        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 
        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 
        'timeStamp', 'trace', 'warn' 
       ]; 
       var length = methods.length; 
       var console = (window.console = window.console || {}); 

       while (length--) { 
        method = methods[length]; 

        // Only stub undefined methods. 
        if (!console[method]) { 
         console[method] = noop; 
        } 
       } 
      }()); 

其次,我使用toISOString用於轉換日期時間戳。在IE中,該功能沒有實現,所以我用這個片段:

/*IE8 toISOString hack */ 
      if (!Date.prototype.toISOString) { 
       Date.prototype.toISOString = function() { 
        function pad(n) { return n < 10 ? '0' + n : n } 
        return this.getUTCFullYear() + '-' 
         + pad(this.getUTCMonth() + 1) + '-' 
         + pad(this.getUTCDate()) + 'T' 
         + pad(this.getUTCHours()) + ':' 
         + pad(this.getUTCMinutes()) + ':' 
         + pad(this.getUTCSeconds()) + '.' 
         + pad(this.getUTCMilliseconds()) + 'Z'; 
       }; 
      } 

三,在foreach方法不支持IE,所以我用這個:

/*IE8 hack to support forEach */ 
      if (!Array.prototype.forEach) { 
       Array.prototype.forEach = function(fn, scope) { 
       for(var i = 0, len = this.length; i < len; ++i) { 
        fn.call(scope, this[i], i, this); 
       } 
       } 
      } 

所有這些代碼片段是從StackOverflow的答案和我爲YMMV工作中挖掘出來的。

我通過角度IE8文檔閱讀,我沒有遇到任何文檔中描述的情況。對於指令,我使用格式:<div directive-name>,一切正常。

+0

安裝像https://github.com/jshint/jshint這樣的javascript代碼驗證程序並驗證您的所有JavaScript文件。我的解決方案是刪除不必要的逗號並添加分號。 – Daan