IE8问题:AngularJS ng-include - 具有HTML5节点结构的部分

时间:2013-02-27 17:46:36

标签: html5 internet-explorer-8 angularjs

关于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]-->

问题是当partial有一个HTML5节点时。

假设:部分在部分中称为标题。

<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>

我已经包含了角度以及html5垫片的require脚本。

如果我将部分内容移动到根文件,一切都很好。

思想?

3 个答案:

答案 0 :(得分:4)

这似乎与问题#1381有关。简而言之,jqlite中的clone方法在它不理解的标记上放置了一个空名称空间,因此html5标记显示为<:header>而不是<header>。如果您使用完整版本的jquery,则可以解决此问题。或者你可以修补角度(见上面的问题)。似乎这个问题在github上有点死了,这里基于这篇文章的年龄。 Google群组(Problems with jQuery and ng:include in Internet Explorer)也存在相关问题。

答案 1 :(得分:0)

已经覆盖,现在AngularJS似乎已经放弃了支持IE8的1.3版本,他们也删除了部分文档。太糟糕= /

答案 2 :(得分:-1)

Angular JS指南http://docs.angularjs.org/guide/ie

中涵盖了这个确切的问题