0

AngularJS を使用して Web ページを開発し、開発中に Google Chrome でテストしました。Chrome では正常に動作しますが、Internet Explorer 9 でもテストしたところ、大きな問題が発生しました。私は、属するカテゴリに応じて異なるhtmlを持つ人を表示するng-repeatを持っています。人ごとに異なるレイアウトを表示できるようにするには、次のコードを使用します。

HTMLコード

<ul class="listview image" >
    <ng:include src="getIncludeFile(profile)" data-ng-repeat="profile in profiles"></ng:include>
</ul>

Javascript

$scope.getIncludeFile = function(profile) {
        switch (profile.Age) {
            case "Child":
                return 'Child.html'; break;
            case "Elder":
                return 'Elder.html'; break;
            default:
                return 'Adult.html';
        }
    }

angular docsを読みましたが、メインのhtmlページの上部に次のものがあります。

<!DOCTYPE html>
<html xmlns:ng="http://angularjs.org" class="ng-app:app" id="ng-app" lang="en" ng-app="app" ng-controller="appController">

テンプレートに何を入力しても、IE には表示されません。正しい量の ng-includes が DOM に表示されるので、問題は ng-repeat ではないと思います。私はインターネット上で同様の問題を見つけていないので、誰かが何が間違っているのか知っているかどうか尋ねています.

4

3 に答える 3

0

IE8+ の場合、次のように ng-include を別の div に保持します。

<ul class="listview image" >
    <div data-ng-repeat="profile in profiles">
        <ng:include src="getIncludeFile(profile)"></ng:include>
    </div>      
</ul>

ngInclude は $sce を使用するため、$sce を無効にすることで IE7 で動作させることができます。

于 2014-02-28T11:20:54.890 に答える
0

これを次のように変更してみてください。

<div ng-include="getIncludeFile(profile)" data-ng-repeat="profile in profiles"></div>

最新のブラウザーが認識するタグを使用しようとしていますが、IE9 以下では認識されません。特に、タグ名にコロンが使用されています。
本当に安全にプレイしたい場合はdata-、すべての前にプレフィックスを使用してください。IE9 以下の条件付き HTML ステートメントで HTML5 Shiv を使用して、引き続き安全にプレイすることもできます。

于 2013-05-24T07:22:53.360 に答える