我有一个显示两组不同数据的视图: 让我们说一下proposalDetails和orderDetails。 我继承了一些试图将这两个类备份为成员的代码。
下面评论中的代码问题是没有克隆类函数。只有会员。另一方面,当我来回切换(在proposalDetails和orderDetails之间)时,将2个类作为引用保持正常工作
有没有理由保持参考是错误/不正确的做法?
当我修改proposalDetails时,是否存在修改orderDetails的危险?
switchView(viewName) {
if (viewName === 'proposal') {
//this.orderBackup = JSON.parse(JSON.stringify(this.orderDetails));
//this.orderDetails = JSON.parse(JSON.stringify(this.proposalDetails));
//'Cloning' the member like this does not include all the class functions
//I changed it to keep just the reference
this.orderBackup = this.orderDetails;
this.orderDetails = this.proposalDetails;
$('#view_ordered').removeClass('active');
$('#view_proposal').addClass('active');
this.formDisabled = true;
return;
}
this.orderDetails = this.orderBackup;
}
答案 0 :(得分:1)
除了Aurelia促进为您的视图模型使用类之外,您所要求的并不是Aurelia特有的。我已经使用了你用来做简单克隆类的JSON技巧,它完成了工作,说实话并不是你能做的更糟糕的事情。
值得指出的是,Lodash还有一些很好的实用功能,可用于克隆深层和浅层物体。