【发布时间】:2017-05-04 14:38:12
【问题描述】:
我有一个永久的数据存储。 我想将记录克隆到临时数据存储,对记录进行更改,然后将修改后的记录复制回永久存储。
我这样创建了临时商店:-
permanentStore.each(function (record) {
temporaryStore.add(record.copy());}
);
如何只复制修改后的记录? 我需要为所有修改的记录使用 id 查找匹配的记录还是有其他简单的方法?
permanentStore.findRecord('Id','temporaryStoreRecordId')
是否有任何干净的克隆方式,以便将更改自动应用于永久存储?
【问题讨论】:
-
首先,如果更改自动应用于永久副本,则它不是克隆。那么你到底想要什么?如果您只制作临时存储,为什么需要从临时存储中查找修改的记录。您可以直接将您的永久存储替换为已修改记录的临时存储,对吗?我的建议是,如果我得到你的要求是正确的,你可以使用 Ext.clone。否则请详细说明
-
@Anindya:您使用的方法还可以,但是您可以使用更清洁的方法,只需像上面提到的 Harshit 那样克隆存储。现在要复制修改后的记录,您需要迭代克隆存储并设置修改记录到原始存储中的每个相应记录。试试这个,如果有效,请回复
-
如果应该就地编辑记录,您究竟需要临时存储做什么?
-
我认为这里不需要临时复制商店。您可以编辑永久存储中的记录。如果您想撤消未保存的记录更改,请使用reject method - 如果您担心保留原始记录,请使用此选项。我想不出您可能想要克隆整个商店的另一个原因 - 了解您的最终目标可能会有所帮助
标签: extjs extjs5 extjs-stores