在ExtJS中,store是一種用于管理數(shù)據(jù)的組件。Store是可以從服務(wù)器端或本地加載數(shù)據(jù)的一個(gè)容器。當(dāng)我們需要把JSON數(shù)據(jù)添加到store中時(shí),我們需要使用Ext.data.Store類(lèi)的loadData()方法。
loadData()方法接收一個(gè)JSON數(shù)據(jù)的數(shù)組作為參數(shù)。在這個(gè)JSON數(shù)組中,每個(gè)對(duì)象都代表一個(gè)記錄。每個(gè)記錄對(duì)象都應(yīng)該至少包含一個(gè)id字段,用于標(biāo)識(shí)這條記錄。除了id字段之外,還可以包含其他的屬性字段。下面是loadData()方法的代碼:
store.loadData([ { id: 1, name: '張三', age: 20 }, { id: 2, name: '李四', age: 30 }, { id: 3, name: '王五', age: 40 }, { id: 4, name: '趙六', age: 50 } ]);
在上面的代碼中,我們定義了一個(gè)包含4個(gè)記錄的JSON數(shù)組。每條記錄都包含一個(gè)id字段和兩個(gè)屬性字段(name和age)。我們可以看到,loadData()方法非常簡(jiǎn)單,只需要一個(gè)JSON數(shù)組作為參數(shù)即可。
除了loadData()方法之外,ExtJS還提供了另外一個(gè)方法來(lái)加載JSON數(shù)據(jù) – load()。load()方法將會(huì)使用Ext.data.reader.Reader類(lèi)來(lái)解析JSON數(shù)據(jù)。我們需要為該方法提供一個(gè)包含url和fields屬性的配置對(duì)象。下面是load()方法的代碼:
store.load({ url: '/users', fields: ['id', 'name', 'age'] });
在上面的代碼中,我們?yōu)閘oad()方法提供了一個(gè)配置對(duì)象,包含一個(gè)url屬性和一個(gè)fields屬性。url屬性表示從服務(wù)器獲取JSON數(shù)據(jù)的URL,而fields屬性表示JSON數(shù)據(jù)中需要解析的屬性。
在使用ExtJS store添加JSON數(shù)據(jù)時(shí),需要注意JSON數(shù)據(jù)格式的正確性,確保每條記錄都包含一個(gè)唯一的id字段,以便于store對(duì)數(shù)據(jù)進(jìn)行管理。