2013-02-27 81 views
7

約AngularJS快速的問題NG-包括其中的諧音有HTML5節點結構,即:頭,導航,頁腳...IE8的問題:AngularJS NG-包括 - 與HTML5節點結構的諧音

在我的頭,我有所有這些讓Angular在Internet Explorer 8及更低版本中都能很好地工作。

所有的ng-view和ng-includes都按預期工作。

<!--[if lt IE 9]> 
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

<!-- Internet Explorer AngularJS element creation --> 
<!--[if lte IE 8]> 
    <script> 
     document.createElement('ng-include'); 
     document.createElement('ng-pluralize'); 
     document.createElement('ng-view'); 
     document.createElement('ng:include'); 
     document.createElement('ng:pluralize'); 
     document.createElement('ng:view'); 
    </script> 
    <script src="http://cdnjs.cloudfare.com/ajax/libs/json3/3.2.4/json3.min.js"></script> 
<![endif]--> 

問題是部分中有一個HTML5節點。

假設:partial在partials中稱爲頭。

<ng-include src="'partials/header.partial.html'"></ng-include> 

實施例1(header.partial.html源 - 在IE8不顯示)

<header> 
    <h1>logo</h1> 
</header> 

實施例2(源header.partial.html - 在IE8顯示)

<div> 
    <h1>logo</h1> 
</div> 

我已經包含了angular以及html5填充的require腳本。

如果我將部分內容移到根文件中,一切都很好。

想法?

回答

4

這似乎發出#1381是相關英寸簡而言之,jqlite中的克隆方法在它不理解的標記上放置一個空的命名空間,因此html5標記顯示爲<:header>而不是<header>。如果您使用完整版本的jquery,這可能會得到解決。或者,你可以修補角度(見上面的問題)。這似乎是github上的問題,在這裏根據這篇文章的年齡在這裏。谷歌組也有一個相關的問題(Problems with jQuery and ng:include in Internet Explorer)。

+2

這是角1.2中的一個已確認的錯誤。看到這個問題https://github.com/angular/angular.js/issues/4020簡短說明:如果你在angularjs html5標籤之前加入了jQuery,但是angularjs指令和自定義指令不會作爲標籤工作。目前的解決方法是將指令用作有效html標籤上的屬性。 – jenso 2013-12-02 13:47:37

0

被覆蓋了,現在AngularJS似乎已經從1.3版開始支持IE8,他們也刪除了部分文檔。太糟糕了=/

+1

請注意,您仍然可以看到文檔的較早版本 - 文檔頁面左上角有一個版本選擇器,可直接鏈接:https://code.angularjs.org/1.2.28/docs/guide/即 – smithml 2015-01-08 19:06:16