2012-06-06 99 views
4

我有一個.json文件,其內容應該由Ext.data.Store讀取並由Ext.grid.Panel(extjs 4)顯示。但是,沒有數據顯示,只有網格是。該代碼是:從json文件加載數據到extjs

var user = Ext.create('Ext.data.Store', { 
    storeId: 'user', 
    model: 'User', 
    autoLoad: 'true', 
    proxy: { 
     type: 'ajax', 
     url : '/users.json', 
     reader: {type: 'json', root: 'blah'} 
    } 
}); 

Ext.create('Ext.grid.Panel',{ 
    store :user, 
    id : 'user', 
    title: 'Users', 
    columns : [ 
     {header: 'ID',  dataIndex : 'id'}, 
     {header : 'NAME', dataIndex : 'name'}, 
     {header : 'Email', dataIndex: 'email'} 
    ], 
    height :300, 
    width: 400, 
    renderTo:'my-portlet2' 
}); 

和我的JSON文件是:

{ blah[ 
    { 
    "id": 1, 
    "name": "Ed Spencer", 
    "email": "[email protected]" 
    }, 
    { 
    "id": 2, 
    "name": "Abe Elias", 
    "email": "[email protected]" 
    } 
]} 

聯數據獲取顯示,但是當我試圖從JSON文件中讀取,這是行不通的。我使用firefox和firebug說,從我的.js文件加載腳本時出現錯誤。能否請你幫忙?謝謝!

+0

錯誤說什麼?如果您複製了GET請求嘗試執行的URL並將其粘貼到瀏覽器中,您是否可以加載該文件? – dbrin

+0

您提供的json無效。你確定你的users.json文件中有一個有效的json嗎? –

回答

0

試試這個:

{ "blah": [ 
    { 
    "id": 1, 
    "name": "Ed Spencer", 
    "email": "[email protected]" 
    }, 
    { 
    "id": 2, 
    "name": "Abe Elias", 
    "email": "[email protected]" 
    } 
]} 
+0

我做了修正,但它仍然沒有工作。該錯誤表示找不到該資源(404)。什麼可能是錯誤?我試圖指定絕對路徑,但無濟於事。有關更多信息,我將這個extjs應用程序作爲使用tomcat的liferay MVC portlet運行。我嘗試將文件保存在webapps目錄中,並且在任何可能的地方我都能想到。我也做了相應的更改。不能想到任何東西:( – user1415459

+0

螢火蟲抱怨'沒有找到'ext-all-debug.js'和'ext-all.js'(404)。另外,'ext'沒有定義。我有2個js文件在extjs文件夾中,我也在腳本中給出了相同的路徑,它還說'yui:not loaded:延遲任務'我失去了我要去哪裏的錯誤.....建議plz? – user1415459

+0

如果我是誠實的,你的問題與這個問題的主題是完全不同的,我會重新發佈一個新的問題,無論如何,你的ext腳本的路徑可能在你的index.html(或類似的東西)中被破壞,如果你提交您的index.html文件;另外,如果您轉到extjs下的示例文件夾,您是否可以使用任何示例項目? – Izhaki

3

非常感謝大家。現在工作正常。由於路徑不正確,服務器找不到文件。經過一番試驗後,我終於可以通過給出一個合適的路徑來獲取json文件中的json數據,例如「TestPortlet3-portlet/js/example.json」。最初,我只是給「/example.json」或「users.json」。在保持.json文件在正確的文件夾中,並給出正確的路徑,我能夠顯示JSON數據:)