首页 文章

我是否需要任何特定的指令来使Angular2与Bootstrap在IE11和Safari中一起工作?

提问于
浏览
0

我们项目团队的一名成员最近建议我们从Angular1 / Angular-Material转移到Angular2 / AngularMaterial2,因为Safari不兼容 . 我认为这种不兼容性是Material Design的Flexbox问题,而不是Angular问题,但我不想在没有先研究的情况下反击 . 所以我构建了一个Angular2 / Bootstrap和一个Angular2 / AngularMaterial2应用程序,希望证明Material Design是个问题,而转向Angular2是一个不值得接管的改革 .

但我很快意识到我的Angular2 / Bootstrap应用程序没有在IE11 / Safari中编译!想象一下我的惊喜!

我是否需要在Angular2中使用任何类型的特定指令来修复此兼容性?我发现很难相信这样一个强大的框架会忽略这些浏览器 .

enter image description here

注意我的图像中的浏览器堆栈 . 控制台上也没有错误 .

我在许多地方按要求添加了ES5和ES6垫片,即这里(Angular 2 with IE 11 not working)但没有雪茄 .

有任何想法吗?先感谢您

2 回答

  • 0

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

    强制性polyfills这些是在每个支持的浏览器上运行Angular应用程序所需的polyfill:浏览器(桌面和移动)Polyfills需要Chrome,Firefox,Edge,Safari 9无Safari 7和8,IE10和11,Android 4.1 ES6 IE9 ES6 classList

  • 1

    我已经弄明白了这个问题 .

    显然,Angular CLI故意评论了在IE和Safari中编译所需的polyfill . 为什么?你的猜测和我的一样好 . 但令人惊讶的是,他们这样做了 .

    转到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';
    

相关问题