EmberJS:如何防止Ember干扰jQuery.extend?

时间:2013-03-27 12:11:04

标签: ember.js

在我的Ember应用程序中,我需要操纵(排序,过滤等)大量非UI相关对象。由于它们有很多并且它们是深层嵌套的,我不会将它们声明为Ember Objects,而是将它们称为“纯粹的”Javascript(数组和{})。我不需要所有的Ember mixins。

我的应用开始变慢。仔细研究细节,这是我发现的:

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

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

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

如何防止这种情况发生?

由于

PJ

1 个答案:

答案 0 :(得分:0)

Ember自动扩展默认的Javascript数组以添加功能,因此即使您使用[]创建“纯”Javascript数组,也可以获得这些添加。

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

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

详见one of the guide pages