Ext JS是一種JavaScript框架,用于構(gòu)建富客戶端Web應(yīng)用程序。其功能豐富,尤其在表單處理方面非常強(qiáng)大。本文將介紹如何使用Ext.form.JsonReader處理JSON數(shù)據(jù)。
首先,我們需要定義JSON格式數(shù)據(jù)的結(jié)構(gòu)。以下是一個(gè)簡(jiǎn)單的示例:
{ "firstName": "John", "lastName": "Doe", "email": "john.doe@example.com" }
接下來,我們需要在Ext應(yīng)用程序中定義一個(gè)模型,以定義JSON對(duì)象。以下是模型的示例:
Ext.define('User', { extend: 'Ext.data.Model', fields: [ { name: 'firstName', type: 'string' }, { name: 'lastName', type: 'string' }, { name: 'email', type: 'string' } ] });
接下來,我們需要?jiǎng)?chuàng)建一個(gè)包含多個(gè)字段的表單。在表單中,為每個(gè)字段定義一個(gè)唯一的ID。
Ext.create('Ext.form.Panel', { items: [{ xtype: 'textfield', fieldLabel: 'First Name', name: 'firstName', id: 'firstName' }, { xtype: 'textfield', fieldLabel: 'Last Name', name: 'lastName', id: 'lastName' }, { xtype: 'textfield', fieldLabel: 'Email', name: 'email', id: 'email' }] });
最后,我們需要?jiǎng)?chuàng)建一個(gè)JsonReader實(shí)例,以處理表單提交時(shí)的JSON數(shù)據(jù)。以下是JsonReader的示例:
var reader = new Ext.data.JsonReader({ model: 'User', rootProperty: 'user' }); var form = Ext.getCmp('myForm').getForm(); form.submit({ url: '/user/save', waitMsg: 'Saving user...', success: function(form, action) { var response = Ext.decode(action.response.responseText); var user = response.user; reader.readRecords(user); }, failure: function(form, action) { } });
在成功提交表單時(shí),我們從響應(yīng)中解碼JSON,并使用JsonReader實(shí)例來讀取用戶記錄。然后,我們可以使用Ext.Store來處理用戶記錄。