2017-04-26 25 views
0

我們的項目團隊成員最近建議,由於Safari不兼容,我們從Angular1/Angular-Material轉移到了Angular2/AngularMaterial2。我認爲這種不兼容性是一個Material Design flexbox問題,而不是一個Angular問題,但我不想先沒有研究就反擊。所以我構建了一個Angular2/Bootstrap和一個Angular2/AngularMaterial2應用程序,希望證明Material Design是個問題,轉向Angular2是一次不值得接管的改革。我是否需要任何特定指令來使帶Bootstrap的Angular2在IE11和Safari中工作?

但我很快意識到,我的Angular2 /引導程序是不是在IE11/Safari瀏覽器編譯!想象我的驚喜!

我需要Angular2中的任何類型的特定指令來修復這種兼容性嗎?我覺得很難相信這樣一個強大的框架忽略了這些瀏覽器。

enter image description here

通知瀏覽器在我的圖像堆棧。在控制檯上也沒有錯誤。

我加入ES5和ES6墊片在許多地方,即在這裏(Angular 2 with IE 11 not working),但沒有雪茄要求。

任何想法?謝謝你在前進

+0

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

+0

@GünterZöchbauer是啊,我看到了,並根據它,它應該工作。這導致我相信我必須缺少一些東西 – LOTUSMS

回答

0

我弄清楚了這個問題。

顯然,角CLI故意評論在IE和Safari編譯所需的polyfills。爲什麼?你的猜測和我一樣好。但令人驚訝的是,他們這樣做。

轉到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這些都是運行在每個支持的瀏覽器的角度 應用程序所需的polyfills:

瀏覽器(桌面&移動)Polyfills所需的Chrome,火狐,邊緣, Safari 9+無Safari 7 & 8,IE10 & 11,Android 4.1+ ES6

IE9 ES6classList

+0

ES6 polyfill包含在盒子中,並以@ angular/cli格式導入。任何嘗試將其添加到cli.json腳本導致多個腳本加載錯誤 – LOTUSMS

+0

對不起,我不知道有關angular-cli。 –

相關問題