Javascript 杀掉一个;“生活”;抽象数据对象
使用RactiveJS,设置为Ractive数据的对象将变为“活动”,因为库添加了一些处理程序来检测数据中的更改。但是,如果我想在另一个不使用Ractive的位置使用相同的对象,例如:Javascript 杀掉一个;“生活”;抽象数据对象,javascript,ractivejs,Javascript,Ractivejs,使用RactiveJS,设置为Ractive数据的对象将变为“活动”,因为库添加了一些处理程序来检测数据中的更改。但是,如果我想在另一个不使用Ractive的位置使用相同的对象,例如: var objectForModuleB = objectForModuleA.get(); 修改objectForModuleB会影响objectForModuleA中的数据,因为对象仍然是“活动的”。我通过“执行stringify解析”来删除处理程序(我只处理数据,没有计算函数和日期对象): 如果您已经一遍
var objectForModuleB = objectForModuleA.get();
修改objectForModuleB
会影响objectForModuleA
中的数据,因为对象仍然是“活动的”。我通过“执行stringify解析”来删除处理程序(我只处理数据,没有计算函数和日期对象):
如果您已经一遍又一遍地阅读了文档。到目前为止,我在文档中还没有遇到类似的问题。最初是在上回答的
你只需要深度克隆<代码>$。extend是实现此目的的正确工具JSON.parse(JSON.stringify())
也可以工作,这取决于您的数据,但速度很慢。如果您不想使用jQuery,您可以创建自己的函数,或者从jQuery的核心获取它
如果您只想阻止在更复杂的实例之间共享数据,可以使用选项函数(v0.5.x):
这样,将为每个ractive实例创建新数据。您是指数组修改方法,还是在选项中使用
magic:true
?您能否提供更多关于对象结构的详细信息,以及您希望它的行为方式?我只是想把Ractive和javascript对象引用的问题分开issues@martypdx我相信我没有使用魔法模式。
var objectForModuleB = JSON.parse(JSON.stringify(objectForModuleA.get()));
new Ractive({
data: function () {
return {
x: 1,
y: 2
};
}
});