【问题标题】:ExtJS 4 Submit form using model proxyExtJS 4 使用模型代理提交表单
【发布时间】:2011-11-19 23:35:25
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: forms rest extjs extjs4 extjs-mvc


    【解决方案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"]);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2012-10-22
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2013-03-10
      相关资源
      最近更新 更多