Проблема 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

Другие вопросы по тегам