在Ember.js中修改Object.entries的推荐方法是什么?

问题描述 投票:0回答:2

我的一些用户使用不支持Object.entries的Internet Explorer 11。我仍然支持该浏览器,但我在我的代码库中的多个位置使用Object.entries

我看到有一个垫片可用。在Ember中放置这个垫片的最佳位置在哪里?

谢谢!

internet-explorer ember.js
2个回答
1
投票

我个人会把它放到初始化器中。我喜欢它,因为它是离散的,以后很容易删除。

ember generate initializer object-entries-polyfill

应用程序/初始化/对象条目-polyfill.js

export function initialize(application) {
  //from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Polyfill
  if (!Object.entries) {
    Object.entries = function( obj ){
    var ownProps = Object.keys( obj ),
        i = ownProps.length,
        resArray = new Array(i); // preallocate the Array
    while (i--)
      resArray[i] = [ownProps[i], obj[ownProps[i]]];

    return resArray;
    };
  }
};

export default {
  initialize
};

1
投票

尝试做以下(不确定它适用于Object.entries但我认为它应该适用于IE没有的其他功能):

  1. config/targets.js中将'ie 11'添加到browsers数组(因为默认情况下它仅适用于prod env,据我所知)
  2. ember-cli-build.js中配置ember-cli-babel包含polyfill: let app = new EmberApp(defaults, { 'ember-cli-babel': { includePolyfill: true, }, });
© www.soinside.com 2019 - 2024. All rights reserved.