2017-04-26 7 views
0

私たちのプロジェクトチームのメンバーは、最近、Safariの非互換性のためAngular1/Angular-MaterialからAngular2/AngularMaterial2に移行したことを提案しました。私はこの非互換性がAngularの問題ではなく、Material Designのflexboxの問題だと思ったが、最初に研究しなくても対抗したくなかった。そこで、私はAngular2/BootstrapとAngular2/AngularMaterial2アプリケーションを作成し、Material Designが問題であることを証明し、Angular2への移行は引き継ぐ価値のないオーバーホールです。IE11とSafariでAngular2をBootstrapで動作させるための具体的な指示が必要ですか?

しかし、すぐに私のAngular2/BootstrapアプリがIE11/Safariでコンパイルされていないことに気付きました!私の驚きを想像してみてください!

この互換性を修正するには、Angular2で特定の種類の指示が必要ですか?私は、このような強力なフレームワークがこれらのブラウザを無視していると信じることは非常に難しいと感じています。

enter image description here

私のイメージでは、ブラウザのスタックに注目してください。コンソールにもエラーはありません。

多くの場所、つまりここでは、要求通りにES5とES6シムを追加しました(Angular 2 with IE 11 not working)しかし、シガーはありません。

アイデア?

ブラウザ(デスクトップ&モバイル)Polyfillsが必要

クロム、Firefoxの、エッジ:これらは、サポートされている各ブラウザ上の角度 アプリケーションを実行するために必要なpolyfillsあり、事前に

+0

https://angular.io/docs/ts/latest/guide/browser-support.html –

+0

@GünterZöchbauerええ、私はそれを見て、それによると、それが動作するはずです。これにより、私は何かが欠けていたと信じられました – LOTUSMS

答えて

0

そして、私はこの問題を解明しました。

Angular CLIは、IEとSafariでコンパイルするのに必要なポリフィルを意図的にコメントしたようです。どうして?あなたの推測は私のものと同じくらい良いです。しかし、驚くほど十分に、彼らはこれを行う。

src/polyfills.tsおよびコメント行(22-34)に移動します。これらは非常に基本的なコンパイルを行いますが、SVG、角アニメーション、特定のパイプを使いたい場合は、さらにコメントアウトして、追加のnpmパッケージをインストールする必要があります。

/** IE9, IE10 and IE11 requires all of the following polyfills. **/ 
import 'core-js/es6/symbol'; 
import 'core-js/es6/object'; 
import 'core-js/es6/function'; 
import 'core-js/es6/parse-int'; 
import 'core-js/es6/parse-float'; 
import 'core-js/es6/number'; 
import 'core-js/es6/math'; 
import 'core-js/es6/string'; 
import 'core-js/es6/date'; 
import 'core-js/es6/array'; 
import 'core-js/es6/regexp'; 
import 'core-js/es6/map'; 
import 'core-js/es6/set'; 
1

https://angular.io/docs/ts/latest/guide/browser-support.html

必須polyfillsをありがとう、 Safari 9+なしSafari 7 & 8、IE10 & 11、Android 4.1+ ES6

IE9 ES6classList

+0

ES6ポリフィルは、@ angle/cliに同梱され、インポートされました。 cli.jsonスクリプトに追加しようとすると、複数のスクリプトの読み込みにエラーが発生する – LOTUSMS

+0

申し訳ありませんが、私はangular-cliについて知らないです。 –

関連する問題