2013-03-07 84 views
2

我是ExtJS的初學者,正在研究sencha上的教程,並且只是不想工作(應用程序教程)。使用ajax代理的ExtJS商店不會加載數據

我有一個網格的簡單存儲,並且當商店使用AJAX代理來讀取json文件時,數據不顯示,並且根據螢火蟲的net標籤,沒有加載任何東西,因爲它是空。並沒有錯誤拋出什麼如此。但是,如果我爲我的json文件添加了一個錯誤的url,那麼它會拋出一個無法找到的錯誤。

我的店鋪看起來是這樣的:

Ext.define('AM.store.Users', { 
    extend: 'Ext.data.Store', 
    model: 'AM.model.User', 
    autoLoad: true, 

    proxy: { 
     type: 'ajax', 
     url: 'data/users.json', 
     reader: { 
      type: 'json', 
      root: 'users', 
      successProperty: 'success' 
     } 
    } 
}); 

我的JSON文件是這樣的:

{ 
    "success": true, 
    "users": [ 
     {"name": "Ed", "email": "[email protected]"}, 
     {"name": "Tommy", "email": "[email protected]"} 
    ] 
} 

型號:

Ext.define('AM.model.User', { 
    extend: 'Ext.data.Model', 
    fields: ['name', 'email'] 
}); 

這些都是完全一樣的下載源文件中的教程,這也不起作用。如果數據是在店內定義的,則一切正常。請幫助,完全阻止在這裏。

謝謝!

+0

模型的外觀如何? – Ankit 2013-03-07 15:03:56

+0

您可能需要在服務器上託管示例,以便Ajax正常工作。 – Eric 2013-03-07 15:09:23

+0

使用'ext-all-dev.js'或'ext-dev.js',以便有更多的日誌記錄。打開你的控制檯。它說什麼?你也應該要求你的模型;)只需添加一個額外的參數'require:['AM.model.User']'。像@Eric sais你是從網絡服務器上運行的嗎? – VDP 2013-03-07 15:36:36

回答

1

您需要在服務器設置中進行ajax調用,如Eric所說。要回答關於加載外部數據的問題,你不能這樣做,因爲它首先不起作用的原因是出於安全原因,如果可以繞過是沒有意義的。我認爲您可以從外部文件加載數據的唯一方法是將JSON數據作爲對象保存在外部.js文件中,並使用存儲的數據屬性將數據設置爲外部文件中的該對象。