Domanda veloce su AngularJS ng-include dove i parziali hanno HTML5 struttura del nodo cioè: intestazione, nav, footer ...IE8 problema: AngularJS ng-includono - parziali con HTML5 struttura del nodo
Nel mio colpo di testa, ho tutte le cose meravigliose per far funzionare Angular in Internet Explorer 8 e versioni successive.
Tutte le ng-view e ng-include funzionano come previsto.
<!--[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]-->
Il problema è quando il parziale ha un nodo HTML5 in esso.
Assunzione: parziale è definita intestazione in partial.
<ng-include src="'partials/header.partial.html'"></ng-include>
Esempio 1 (fonte header.partial.html - non viene visualizzato in IE8)
<header>
<h1>logo</h1>
</header>
Esempio 2 (fonte header.partial.html - visualizzazione in IE8)
<div>
<h1>logo</h1>
</div>
Ho incluso lo script require da angular così come lo shim html5.
Se si sposta il contenuto del partial nel file di root, tutto è buono.
Pensieri?
Questo è un bug confermato in angular 1.2. Leggi questo numero https://github.com/angular/angular.js/issues/4020 Breve spiegazione: se includi jQuery prima che i tag angularjs html5 funzionino, le direttive angularjs e le direttive personalizzate non funzioneranno come tag. La soluzione corrente consiste nell'utilizzare le direttive come attributi su tag html validi. – jenso