Каков рекомендуемый способ добавления Object.entries в Ember.js? - PullRequest
0 голосов
/ 16 февраля 2019

Некоторые из моих пользователей используют Internet Explorer 11, который не поддерживает Object.entries.Я хотел бы все еще поддерживать этот браузер, но я использую Object.entries в нескольких местах в моей кодовой базе.

Я вижу, что есть доступная прокладка.Где было бы лучшее место для размещения этой прокладки в Ember?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Попробуйте выполнить следующее (не уверен, что оно работает для Object.entries, но я думаю, что оно должно работать так же, как и для других функций, которых нет в IE):

  1. В config/targets.js добавить 'ie 11' to browsers массив (потому что по умолчанию он существует только для prod env, насколько я могу судить)
  2. В ember-cli-build.js настроить ember-cli-babel для включения polyfill:

    let app = new EmberApp(defaults, {
      'ember-cli-babel': {
        includePolyfill: true,
      },
    });
    
0 голосов
/ 16 февраля 2019

Я бы лично положил это в инициализатор.Мне там нравится, потому что его осторожно и легко удалить позже.

ember generate initializer object-entries-polyfill

app / initializers / object-records-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
};
...