2011-11-19 59 views
2

是否可以使用模型/商店的代理提交extjs 4表單。我想使用提交操作來進行遠程驗證。我想從模型中使用剩餘的代理配置,這樣我就可以避免兩次配置數據庫/服務器連接。ExtJS 4使用模型代理提交表單

Thx爲您的幫助!

回答

2

如果您的表單完全代表您的模型的一個實例,爲什麼使用表單提交而不是model.save();store.sync()?這些方法設計用於處理數據模型,並充分利用ExtJS數據的所有內置功能。

documentation for Ext.data.Model子標題下的「使用代理服務器」中,有可能需要執行的各種操作(GET,PUT,POST,DELETE - 又名加載,保存,保存,銷燬)的示例。

然後,您可以將一些回調附加到model.save()方法,以便知道操作是成功還是失敗(可能是由於服務器端驗證)。

這裏有一個煎茶論壇帖子談論你的具體使用情況: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"]); 
    } 
});