【发布时间】:2011-12-30 07:36:46
【问题描述】:
我在将表单保存到商店时遇到问题。表单加载记录以编辑现有记录,或者为新记录为空白。编辑现有记录可以正常工作。创建一个新的也可以正常工作。如果我想在不关闭并重新打开表单的情况下编辑和更新新创建的记录,我会遇到问题。
我猜问题是商店内记录的id是通过远程服务器分配的。该表单包含模型的副本,并且不会注意到更改的 id。
任何想法如何保持表单和商店同步?
以下代码用于保存:
var basicForm = this.up('form').getForm(),
record = basicForm.getRecord();
if (basicForm.isValid()) {
if (!record) {
record = Ext.data.StoreManager.lookup('theModel').add( this.up('form').getForm().getFieldValues())[0];
basicForm.loadRecord(record);
} else {
basicForm.updateRecord(record);
}
}
【问题讨论】:
-
您可以在 store 中为 write 事件添加监听器,并更新您在表单中的实例的记录 id。
-
嘿 VoidMain,我也想过这个问题。 ... var 记录 = 新 app.model.newModel(basicForm.getFieldValues());记录.保存({成功:函数(){console.log(this)}}); ...不幸的是,我仍然得到旧记录而不是具有分配 id 的新更新记录
-
但是谢谢提示,你知道如何实现它吗?
-
好的,让我举个简单的例子。
标签: forms extjs extjs4 store extjs-mvc