2013-02-27 5 views
7

Schnelle Frage über AngularJS-ng enthält, wo die partials HTML5 Knotenstruktur dh haben: Header, nav, Footer ...IE8 Ausgabe: AngularJS ng-umfassen - partials mit HTML5 Knotenstruktur

In meinem Kopf, ich habe all die großartigen Dinge, die Angular in Internet Explorer 8 und darunter gut machen.

Alle ng-view und ng-includes funktionieren wie vorgesehen.

<!--[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]--> 

Das Problem ist, wenn das Teil hat einen HTML5-Knoten in ihm.

Annahme: Teil wird Überschrift in Teilbezeichnungen genannt.

<ng-include src="'partials/header.partial.html'"></ng-include> 

Beispiel 1 (header.partial.html Quelle - nicht angezeigt in IE8)

<header> 
    <h1>logo</h1> 
</header> 

Beispiel 2 (header.partial.html Quelle - Anzeige in IE8)

<div> 
    <h1>logo</h1> 
</div> 

Ich habe das require-Skript von angular sowie die html5-Shim enthalten.

Wenn ich den Inhalt der partiellen in die Root-Datei verschiebe, ist alles gut.

Gedanken?

Antwort

4

Dies scheint verwandt zu sein #1381 auszustellen. Kurz gesagt, die Klon-Methode in jqlite legt einen leeren Namespace auf Tags, die er nicht versteht. Daher erscheinen html5-Tags wie folgt: <:header> anstelle von <header>. Dies kann behoben werden, wenn Sie die Vollversion von jquery verwenden. Alternativ können Sie eckig ausrichten (siehe oben). Es scheint, das Problem ist irgendwie tot auf Github und hier basierend auf dem Alter dieses Posts. Es gibt auch ein verwandtes Problem bei Google-Gruppen (Problems with jQuery and ng:include in Internet Explorer).

+2

Dies ist ein bestätigter Fehler in eckigen 1.2. Siehe dieses Problem https://github.com/angular/angular.js/issues/4020 Kurze Erklärung: Wenn Sie jQuery vor angularjs einfügen, werden html5-Tags funktionieren, aber angularjs-Anweisungen und benutzerdefinierte Direktiven werden nicht als Tags funktionieren. Die aktuelle Problemumgehung besteht darin, die Direktiven als Attribute gültiger HTML-Tags zu verwenden. – jenso

0

Wurde abgedeckt, jetzt, dass AngularJS Unterstützung IE8 ab 1.3 fallengelassen haben sie auch Teile ihrer Dokumentation entfernt. Schade =/

+1

Beachten Sie, dass Sie immer noch die älteren Versionen der Dokumentation sehen können - es gibt eine Versionsauswahl in der oberen linken Ecke der Dokumentseiten, direkter Link: https://code.angularjs.org/1.2.28/docs/guide/ dh – smithml