1

在我的 Ember 应用程序中,我需要操作(排序、过滤等)大量与 UI 无关的对象。由于它们有很多而且嵌套很深,所以我没有将它们声明为 Ember 对象,而是“纯”Javascript 对象(数组和 {})。我不需要所有的 Ember mixin。

我的应用程序开始变慢。查看详细信息,这是我发现的:

在某些时候我做了一个简单的:

var b = $.extend(true, [], a); // a is a pure javascript object

但是当我检查 b 时,它看起来已经变成了一个 Ember 对象。它有很多属性,比如 addArrayObserver、addBeforeObserver 等等。

我该如何防止这种情况发生?

谢谢

PJ

4

1 回答 1

0

Ember 会自动扩展默认的 Javascript 数组以添加功能,因此即使您使用[].

您可以通过在加载 Ember.js 之前设置配置标志来禁用这些扩展:

window.Ember = {};
Ember.EXTEND_PROTOTYPES = false;

这在其中一个指南页面中有详细说明。

于 2013-03-27T12:52:13.557 回答