ExtJS 4使用模型代理提交表单

时间:2011-11-19 23:35:25

标签: forms rest extjs extjs4 extjs-mvc

是否可以使用模型/商店的代理提交extjs 4表单。我想使用提交操作来进行远程验证。我想使用模型中的其余代理配置,这样我就可以避免两次配置数据库/服务器连接。

谢谢你的帮助!

1 个答案:

答案 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"]);
    }
});