2

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

谢谢你的帮助!

4

1 回答 1

2

如果您的表单完全代表您的模型的一个实例,那么您为什么使用表单提交而不使用model.save();or store.sync()?这些方法是为处理您的数据模型而设计的,并利用了 ExtJS 数据的所有内置功能。

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"]);
    }
});
于 2012-04-18T15:50:45.873 回答