在ExtJS中,經(jīng)常需要從接口獲取一對多的JSON數(shù)據(jù)。一對多指的是一個對象擁有多個子對象。例如,在一個CMS系統(tǒng)中,一個文章可能有多個標(biāo)簽或者分類。這時,我們可以通過使用ExtJS的Store和Model來處理一對多的JSON數(shù)據(jù)。
Ext.define('Article', { extend: 'Ext.data.Model', fields: [ {name: 'id'}, {name: 'title'}, {name: 'content'}, {name: 'tags', convert: function(value, record){ return Ext.decode(value); }}, {name: 'categories', convert: function(value, record){ return Ext.decode(value); }} ] }); Ext.define('ArticleStore', { extend: 'Ext.data.Store', model: 'Article', proxy: { type: 'ajax', url: 'article.json', reader: { type: 'json' } }, autoLoad: true }); var articleStore = Ext.create('ArticleStore'); articleStore.load({ callback: function(records, operation, success) { if(success){ console.log(records); } } });
在這里,我們定義了一個Article模型,其中有id、title、content、tags、categories五個字段。其中,tags和categories是JSON字符串,我們使用convert方法將其轉(zhuǎn)換為JSON對象。我們還定義了一個ArticleStore,使用Ext.data.Store來管理文章數(shù)據(jù)。我們通過ajax代理來獲取article.json文件中的文章數(shù)據(jù)。在通過load方法加載數(shù)據(jù)的時候,我們可以在回調(diào)的callback函數(shù)中處理數(shù)據(jù)。在callback函數(shù)中,我們可以通過操作records來獲取數(shù)據(jù),然后進(jìn)行相關(guān)操作。
總的來說,通過使用ExtJS的Store和Model來處理一對多的JSON數(shù)據(jù),可以更好的組織數(shù)據(jù)并方便管理,這樣就可以更加高效地開發(fā)程序。希望對大家有所幫助!