ExtJS 4 使用模型代理提交表单
Posted
技术标签:
【中文标题】ExtJS 4 使用模型代理提交表单【英文标题】:ExtJS 4 Submit form using model proxy 【发布时间】:2011-11-19 23:35:25 【问题描述】:是否可以使用模型/商店的代理提交 extjs 4 表单。我想出于远程验证的原因使用提交操作。我想使用模型中的其余代理配置,这样我就可以避免两次配置数据库/服务器连接。
感谢您的帮助!
【问题讨论】:
【参考方案1】:如果您的表单完全代表您的模型的一个实例,为什么您使用表单提交而不是model.save();
或store.sync()
?这些方法专为处理您的数据模型而设计,并利用 ExtJS 数据的所有出色内置功能。
在 documentation for Ext.data.Model 的“使用代理”子标题下,有一些您可能想要执行的各种操作的示例(GET、PUT、POST、DELETE - 也就是加载、保存、保存、销毁)。
然后,您可以将一些回调附加到 model.save() 方法,以便知道操作是成功还是失败(可能是由于服务器端验证)。
这里有一篇 Sencha 论坛帖子讨论您的具体用例:ExtJS 4 Sync and success/failure processing
总结是,如果您的服务器端验证返回 JSON 内容错误,例如:
"success": "false", "message": "Error message goes here."
然后您可以保存模型并捕获失败响应,并使用额外的消息 JSON 元素来提醒用户为什么它未能通过服务器端验证。当然,如果您愿意,您可以返回更详细的 JSON 消息,但这证明了这个概念。扩展以适应您的应用程序。
myExtModelInstance.save(
success: function(rec, op)
// do something
,
failure: function(rec, op)
// Lets show a message for the failure with the
// content from the server's returned failure JSON
Ext.Msg.alert("Failed",op.request.scope.reader.jsonData["message"]);
);
【讨论】:
以上是关于ExtJS 4 使用模型代理提交表单的主要内容,如果未能解决你的问题,请参考以下文章