Ext.js 是一款用于構(gòu)建 JavaScript 客戶端程序的框架。在開發(fā)中,我們經(jīng)常會使用到條形圖,并需要從后臺獲取數(shù)據(jù)。下面介紹使用 Ext.Ajax.request 方法從后臺獲取 JSON 數(shù)據(jù)并生成條形圖的方法。
首先,配置 Ext.Ajax.request 方法的參數(shù),包括請求的 URL、傳輸方式、請求成功后的回調(diào)函數(shù)等。
Ext.Ajax.request({ url: 'data.json', method: 'GET', success: function(response) { var json = Ext.decode(response.responseText); ... } });
其中,data.json 表示請求的數(shù)據(jù)地址,GET 表示使用 GET 方法進行請求。
當請求成功后,我們需要解析返回的 JSON 數(shù)據(jù),并將其轉(zhuǎn)換為條形圖所需要的數(shù)據(jù)格式。在 Ext.js 中,數(shù)據(jù)格式為數(shù)組,每個元素為一個對象,包括 name 和 data 屬性。
var jsonData = Ext.decode(response.responseText); var barData = []; jsonData.forEach(function(item) { barData.push({ name: item.name, data: item.data }); });
使用生成條形圖的方法 Ext.create('Ext.chart.CartesianChart', ...) 生成條形圖,并將解析后的數(shù)據(jù)傳遞給 data 屬性。
Ext.create('Ext.chart.CartesianChart', { renderTo: Ext.getBody(), width: 800, height: 400, xtype: 'cartesian', store: store, axes: [...], series: [...], ..." data: barData });
其中,store、axes、series 等屬性可根據(jù)條形圖的具體需求進行配置。
最后,將以上代碼整合到一個函數(shù)中,并在需要生成條形圖時調(diào)用即可。
function createBarChart() { Ext.Ajax.request({ url: 'data.json', method: 'GET', success: function(response) { var jsonData = Ext.decode(response.responseText); var barData = []; jsonData.forEach(function(item) { barData.push({ name: item.name, data: item.data }); }); Ext.create('Ext.chart.CartesianChart', { renderTo: Ext.getBody(), width: 800, height: 400, xtype: 'cartesian', store: store, axes: [...], series: [...], ..." data: barData }); } }); } createBarChart();