2012-04-22 46 views
0

希望有人能幫助..我搜索了幾個小時試圖找到解決這個..煎茶觸摸2 Ajax代理未顯示在列表數據

我試圖填充使用Ajax代理列表在商店裏。如果我將json數據內聯,它可以很好地工作,但我似乎無法從代理返回任何數據,即使url在瀏覽器中返回完全相同的json數據。我究竟做錯了什麼???

商店:

Ext.define('m3.store.News', { 
extend: 'Ext.data.Store', 

requires: ['m3.model.News'], 

config: { 
    model: 'm3.model.News', 
    autoload: true, 
    proxy: { 
     type: 'ajax', 
     url: 'http://localhost/lib', 
     reader: { 
      type: 'json' 
     } 
    } 
}); 

如果我添加了數據在線,它完美的作品:

Ext.define('m3.store.News', { 
extend: 'Ext.data.Store', 

requires: ['m3.model.News'], 

config: { 
    model: 'm3.model.News', 
    autoload: true, 
    proxy: { 
     type: 'ajax', 
     url: 'http://localhost/lib', 
     reader: { 
      type: 'json' 
     } 
    }, 
data: [{"title":"Test Title 1","id":"1","text":"<div>Test Text 1<\/div>"},{"title":"Test Title 2","id":"2","text":"<div>Test Text 2<\/div>"}] 
}); 

其他一切工作正常,所以我不張貼的其他文件,讓我知道如果你可能需要它們。

我什至試過靜態json文件,但似乎沒有從代理返回。

有沒有方法可以測試控制檯中代理的響應?我試過了「Ext.getStore('News');」但它返回一個空數組。

使用Sencha Touch 2 MVC。

看起來很簡單,但我不能得到它的工作..很多預先感謝!

+0

好的,試過Ext.getStore('News')。load();在控制檯,它將數據拉入..現在,我無法弄清楚應該在哪裏把這個電話..新手領土恐怕..謝謝.. – 2012-04-23 15:29:14

+0

剛剛添加到啓動功能在主app.js和所有似乎工作正常..那麼「自動加載」的處理是什麼?該配置不應該這樣做? – 2012-04-23 15:30:41

+1

Aaaaagggghhhhh! autoLoad不自動加載!!!!!!!!!!!! Noob中央.. – 2012-04-23 22:16:06

回答

0

我想你在這裏丟失的是rootProperty,同時通過Ajax加載data代理。

你需要提及這個屬性來確定你的json的根。

reader : { 
    type:'json', 
    rootProperty:'data' 
} 

和你的JSON數據應該像下面的格式(根應該是「數據」)

{ 
    "data": [ 
     { 
      "title": "Test Title 1", 
      "id": "1", 
      "text": "<div>Test Text 1</div>" 
     }, 
     { 
      "title": "Test Title 2", 
      "id": "2", 
      "text": "<div>Test Text 2</div>" 
     } 
    ] 
} 

我認爲,它應該與這些改變現在的工作。