我的一些用户使用不支持Object.entries
的Internet Explorer 11。我仍然支持该浏览器,但我在我的代码库中的多个位置使用Object.entries
。
我看到有一个垫片可用。在Ember中放置这个垫片的最佳位置在哪里?
谢谢!
我个人会把它放到初始化器中。我喜欢它,因为它是离散的,以后很容易删除。
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
};
尝试做以下(不确定它适用于Object.entries
但我认为它应该适用于IE没有的其他功能):
config/targets.js
中将'ie 11'
添加到browsers
数组(因为默认情况下它仅适用于prod env,据我所知)ember-cli-build.js
中配置ember-cli-babel包含polyfill:
let app = new EmberApp(defaults, {
'ember-cli-babel': {
includePolyfill: true,
},
});