2013-02-27 86 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