Ember : addObject/pushObject 不是函数

Ember : addObject/ pushObject is not a function

我最近从 ember 1.x 升级到 2.6。我无法像以前那样使用 addObject/pushObject。

Ember      : 2.6.2
jQuery     : 2.2.4

import Ember from 'ember';

export default Ember.Controller.extend({
    test: ['sibi', 'john'],

    init: function() {
        this.get('test').pushObject('sebastian');
    }
});

这会引发错误,例如 pushObject 不是函数。解决方法是什么?谢谢。

出于某种原因,扩展原型选项是错误的。 您可以在 guide.

中阅读有关禁用原型扩展的更多信息
EmberENV: {
      EXTEND_PROTOTYPES: {
        Array: true
      }
    }

谢谢!

对照 ember-disable-prototype-extensions 检查您的 package.json

如果您的项目是一个插件项目,它是由 ember-cli 添加的。你应该忍受它。 (只要您需要 Ember 数组,就使用 Ember.A。)

如果您的项目是应用程序项目,只需删除此插件。