web-dev-qa-db-ja.com

IE11 Angular 2エラー「識別子、文字列、または数字が必要です」

さて、Angular 2.を使用してサイトを作成しました。「ng-serve」コマンドを実行し、「 http:// localhost:42 「GoogleでChromeとIE11は完全に動作しますが、「ng-build --prod」を使用してプロジェクトをビルドすると、IISでホストされます。サイトはChromeでも動作しますが、IE11は次のエラー: Expected identifier, string or number

私はそれをグーグルで検索し、それが多分私の識別子のキーと値のペアの予約語であることがわかりました。そこで、キーの周りにアポストロフィ( ')を追加しました。たとえば、次のオブジェクトがありました。

user:UserViewModel={
    Username:"",
    Age:0
};
and changed this to:
user:UserViewModel={
    'Username':"",
    'Age':0
};

また、key:valueペアの最後のコンマを削除し、polyfills.tsのcore.jsをインポートしました

22
Dato Maisuradze

主な問題は、IEがデフォルトで互換モードを有効にしていることです。 IE 11には互換モードの問題がいくつかあります。次の質問の回答によると、 Angular 2/4はIE11で動作しません

互換モードを無効にしようとしたとき、うまく動作します

しかし、一般ユーザーは互換モードをオフにしないでしょう。だから私はそのための良い解決策が欲しい。

その後、次のソリューション形式を見つけました タグを使用してIE互換モードを強制的にオフにします

      <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
18