2012-03-13 43 views
0

我想使用extJS元數據功能設置屬性到商店。商店元數據不能按預期工作

我的JSON響應如下所示:

{ 
    "code": 200, 
    "data": [ 
     { 
      "User": { 
       "id": "1", 
       "username": "julian", 
       "firstname": "Julian", 
      } 
     } 
    ], 
    "success": true, 
    "metaData": { 
     "displayField": "username" 
    } 
} 

現在我想要輸出displayField在我店裏的Load事件。 這裏是我的店:

Ext.define('AM.store.Users', { 
    extend:'Ext.data.Store', 
    model:'AM.model.User', 
    autoLoad:false, 
    displayField: null, 
    listeners:{ 
     load:function (store) { 
      console.log(store.displayField); 
     } 
    }, 
    proxy:{ 
    type:'ajax', 
     api:{ 
      read:BASE_PATH + 'users/index', 
      create:BASE_PATH + 'users/edit', 
      update:BASE_PATH + 'users/edit', 
     destroy:BASE_PATH + 'users/remove' 
     }, 
     reader:{ 
      type:'json', 
      root:'data', 
      record:'User', 
      messageProperty:"code" 
     }, 
     writer:{ 
      type:'json', 
      writeAllFields:true 
     } 
    } 
}); 

的console.log()輸出空

UPDATE:

store.proxy.reader.displayField持有displayField用正確的數據。但這並不合理。

回答

0

翻閱ExtJs源代碼我認爲meteData應該在你的data數組中。你有控制服務器端嗎?試着把它放在那裏,看看客戶是否會認出它。

+0

這是我猜錯了。 我調試自己到Json.js第203行ExtJS檢查元數據。在這種情況下,「數據」是完整的響應對象。 – 2012-03-13 16:22:30

+0

好的。抱歉。我從來沒有用過它。只是看了一下代碼。那麼是否有任何東西進入onMetaChange? – sha 2012-03-13 16:27:31

+0

是的,我的元數據被應用到'this'。 但它看起來像'this'是'Ext.data.reader.Json'。 請參閱我編輯的問題。 – 2012-03-13 16:32:00