Ext js表单,模型和文件上传

时间:2012-04-25 07:42:38

标签: extjs4

我想澄清一下ext 4模型如何与表格面板相关联。 假设我有一个模型,例如“用户”,附有REST代理。

当我想修改用户参数时,我使用表单

loadRecord( Ext.data.Model record ) : Ext.form.Basic 

方法,设置表单的字段值。

修改后,我调用“updateRecord”方法,将更改从表单发送到加载模型,然后使用模型的“保存”方法,将更改发送到服务器。这非常有效,似乎适合Ext MVC概念。

问题

但问题是:在修改用户数据(例如头像)的同时,如果我需要上传文件,我应该如何符合MVC。根据我从文档中学到的,我应该切换到使用表单的“提交”方法来发送更新的数据,以便服务器,包括文件。

在这种情况下,我看到了几个缺点:

  • 加载到表单的原始模型不会更新。
  • 如果我更新模型(使用“updateRecord”或其他方式),模型将保持脏状态,但是,更改已经发送到服务器。
  • 对于模型,应该应用相同的代理配置,以便我不需要更改服务器端。

这是通过ext表单实现文件上传的正确方法吗? 有没有办法使用model.save方法做到这一点,更加MVC时尚?

1 个答案:

答案 0 :(得分:0)

我认为你不能将两件事结合在一起。文件上传总是与提交其余数据不同。但是你可以做什么:

  • 有一个按钮可以选择文件并将其上传到服务器。但是不要将文件保存到保存用户的相同位置(例如,您可以使用单独的文件存储并将文件名保存到用户记录中)

  • 将用户记录更新发送到服务器时,发送新文件名。这样,您的头像更新和其他数据更新将在同一交易中。