7

パーシャルが HTML5 ノード構造を持つ AngularJS ng-includes に関する簡単な質問: ヘッダー、ナビゲーション、フッター...

私のヘッダーには、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 ソース - IE8 で表示)

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

angular の require スクリプトと html5 shim を含めました。

パーシャルの内容をルート ファイルに移動すれば、すべて問題ありません。

考え?

4

3 に答える 3

4

これは issue #1381に関連しているようです。簡単に言えば、jqlite の clone メソッドは、理解できないタグに空の名前空間を配置するため、html5 タグは<:header>ではなくこのように表示され<header>ます。これは、jquery のフル バージョンを使用すると解決される場合があります。または、Angular にパッチを適用することもできます (上記の問題を参照してください)。この問題は、この投稿の年齢に基づいて、github と here で死んだようです。Google グループにも関連する問題があります ( Internet Explorer の jQuery および ng:include に関する問題)。

于 2013-08-19T15:43:25.957 に答える
0

AngularJS が 1.3 の時点で IE8 のサポートを中止したように見えたため、ドキュメントの一部も削除されました。残念=/

于 2014-12-09T10:58:22.203 に答える