Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Ember应用程序中加载项中的Object.assign()导致IE11出现问题_Ember.js_Babel Polyfill - Fatal编程技术网

Ember.js Ember应用程序中加载项中的Object.assign()导致IE11出现问题

Ember.js Ember应用程序中加载项中的Object.assign()导致IE11出现问题,ember.js,babel-polyfill,Ember.js,Babel Polyfill,我有一个余烬应用程序,使用几个第三方附加组件。其中一个加载项使用Object.assign(),这会导致IE11出现问题,特别是错误 错误:对象不支持属性或方法“assign” 我知道为什么会发生这种情况,但我对Ember比较陌生,不确定处理/修复这种情况的最佳方法。根据我的研究,有以下几种选择: 选项1:使用多边形填充 我想我可以安装一些额外的库,或者在Babel中设置一些选项来解决这个问题,但到目前为止我还没有做到这一点。目前还不清楚这些选项是否会影响附加组件的代码,或者它们是否只适用于主应

我有一个余烬应用程序,使用几个第三方附加组件。其中一个加载项使用Object.assign(),这会导致IE11出现问题,特别是错误

错误:对象不支持属性或方法“assign”

我知道为什么会发生这种情况,但我对Ember比较陌生,不确定处理/修复这种情况的最佳方法。根据我的研究,有以下几种选择:

选项1:使用多边形填充

我想我可以安装一些额外的库,或者在Babel中设置一些选项来解决这个问题,但到目前为止我还没有做到这一点。目前还不清楚这些选项是否会影响附加组件的代码,或者它们是否只适用于主应用程序中的代码

选项2:扩展附加组件以避免Object.assign()

不幸的是,有问题的行位于组件的init()中。当我的扩展组件调用此._super()时,我试图避免的代码仍在运行。有没有一种方法可以“跳过”基本组件的init()并直接转到Ember的component.init()(外接程序的_super())呢

选项3:放弃第三方附加组件,尽我所能补救,然后制作我自己的组件。
令人恼火,但确实可以。在这一点上,从一开始这样做可能会更快

选项4:修复附加组件以删除问题代码。我在这里的犹豫有两个方面:1,如果这是我应该在我的应用程序中管理的东西,那么进行附加更改似乎是不正确的(尽管这里肯定有“最佳实践”的论点)。更大的担忧是,这是一个低活动的附加组件。即使我提交了带有更改的PR,我也不确定新版本需要多长时间。
同时,建议的做法是什么?将我的应用指向本地版本,然后在发布时记得将其更新为“官方”版本

我怀疑选项1“多边形填充和/或构建设置”是最正确的做法,但我不知道具体该做什么

其他信息: 我的应用程序是使用Ember 2.7开发的,我正在将其更新为Ember 3.1。这两个版本中都存在此问题。

您可以:


选项4:向插件提交一个补丁以使用
Ember.assign
,该插件使用本机
对象。assign
如果可用,则返回polyfill。我同意runspired。我的第一步是打开一个问题解决方案,看看维护人员是否响应。这是最少的工作,如果他们是活跃的!我同意“修复插件”是最直接的方法。我担心的是,1,这是我应该自己处理的事情(选项1),2,这是一个低活动插件。我不确定要多久才能得到一个新的“官方”版本,即使我做了一个公关的变化。我会更新这个问题。谢谢,祝你好运!如果您没有得到回复,可以通过Ember社区Slack联系到许多维护人员。谢谢,这太完美了。这么简单!
// ember-cli-build.js

let app = new EmberApp(defaults, {
  'ember-cli-babel': {
    includePolyfill: true
  }
});