2012-03-13 9 views
0

extJS metaData 기능을 사용하여 저장소에 대한 속성을 설정하려고합니다.저장소 메타 데이터가 예상대로 작동하지 않습니다.

내 JSON 응답은 다음과 같습니다

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

지금 내 가게의로드 이벤트에 출력에 displayField을 시도하고있다.

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

이것은 잘못된 것 같습니다. ExtJS가 metaData를 확인하는 Json.js Line 203에 자신을 디버깅했습니다. 이 경우'data'는 전체 응답 객체입니다. –

+0

확인. 죄송합니다. 나는 그것을 사용하지 않았다. 코드를 보았습니다. 안에 들어간다 뭐니? – sha

+0

예, 내 메타 데이터가 '이'에 적용됩니다. 그러나 'this'는'Ext.data.reader.Json '입니다. 내 편집 된 질문을 참조하십시오. –

관련 문제