7

关于 AngularJS ng-includes 的快速问题包括部分具有 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 中称为 header。

<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 的 require 脚本以及 html5 shim。

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

想法?

4

3 回答 3

4

这似乎与问题#1381有关。简而言之,jqlite 中的 clone 方法在它不理解的标签上放置了一个空的命名空间,因此 html5 标签显示为这样,<:header>而不是<header>. 如果您使用完整版的 jquery,这可能会得到解决。或者,您可以修补角度(请参阅上面的问题)。似乎这个问题在 github 上已经死了,这里基于这篇文章的年龄。google 群组上也有一个相关问题(Internet Explorer 中的 jQuery 和 ng:include 问题)。

于 2013-08-19T15:43:25.957 回答
0

被覆盖了,现在 AngularJS 似乎从 1.3 开始不再支持 IE8,他们也删除了部分文档。太惨了=/

于 2014-12-09T10:58:22.203 回答
-1

Angular JS 指南http://docs.angularjs.org/guide/ie涵盖了这个确切的问题

于 2013-05-13T01:12:01.983 回答