是否可以使用模型/商店的代理提交extjs 4表单。我想使用提交操作来进行远程验证。我想使用模型中的其余代理配置,这样我就可以避免两次配置数据库/服务器连接。
谢谢你的帮助!
答案 0 :(得分:2)
如果您的表单完全代表您的模型的一个实例,为什么您使用表单提交而不是model.save();
或store.sync()
?这些方法旨在使用您的数据模型,并利用ExtJS数据的所有酷内置功能。</ p>
在子标题“使用代理”下的documentation for Ext.data.Model中,您可能想要执行各种操作的示例(GET,PUT,POST,DELETE - 又称加载,保存,保存,销毁)。 / p>
然后,您可以将一些回调附加到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"]);
}
});