Проблема IE8: AngularJS ng-include - партиалы со структурой узла HTML5
Краткий вопрос об AngularJS ng-include, где партиалы имеют структуру узла HTML5, например: header, nav, footer...
В моем заголовке у меня есть все, что нужно, чтобы 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 в нем.
Предположение: частичное называется заголовком в частичных.
<ng-include src="'partials/header.partial.html'"></ng-include>
Пример 1 (источник header.partial.html - не отображается в IE8)
<header>
<h1>logo</h1>
</header>
Пример 2 (header.partial.html source - отображение в IE8)
<div>
<h1>logo</h1>
</div>
Я включил скрипт require из angular и html5 shim.
Если я перемещаю содержимое частичного в корневой файл, все хорошо.
Мысли?
3 ответа
Похоже, это связано с проблемой № 1381. В двух словах, метод clone в jqlite помещает пустое пространство имен в теги, которые он не понимает, поэтому теги html5 отображаются следующим образом <:header>
вместо <header>
, Это может быть решено, если вы используете полную версию jquery. В качестве альтернативы вы можете исправить угловой (см. Вопрос выше). Похоже, что проблема на github мертва и здесь, в зависимости от возраста этого поста. Существует также проблема, связанная с группами Google ( проблемы с jQuery и ng:include в Internet Explorer).
Было рассмотрено, что теперь AngularJS, похоже, отказался от поддержки IE8, начиная с версии 1.3, они также удалили части своей документации. Жаль =/
Точная проблема описана в руководстве по Angular JS http://docs.angularjs.org/guide/ie