2012-09-12 2 views
1

int 유형의 필드에 그루퍼가있는 Json 상점에서 읽는 목록이 있습니다. 이 필드는 아래 샘플 모델에서 "req"라고합니다. 그러나 int 값으로 그룹화하는 대신 텍스트 값을 할당하고 싶습니다. 예를 들어 "1"의 경우 "예"로 그룹화하고 "0"의 경우에는 "아니요 ". 변환은 변경되지 않으므로 하드 코딩 할 수 있습니다. 내 코드에서이 변환은 어디서해야합니까? 당신의 도움을 주셔서 감사합니다Sencha Touch Grouper 속성 변환

Ext.define('MyApp.store.MyStore', { 
    extend: 'Ext.data.Store', 
    requires: [ 
     'MyApp.model.MyData' 
    ], 

    config: { 
     model: 'MyApp.model.MyData', 
     storeId: 'MyStore', 
     proxy: { 
      type: 'ajax', 
      url: '/path/to/data.json', 
      reader: { 
       type: 'json', 
       rootProperty: 'items' 
      } 
     }, 
     grouper: { 
      property: 'req', 
      sortProperty: 'req' 
     }, 
     groupDir: 'DESC' 
    } 
}); 

모델 :

Ext.define('Mypp.model.MyModel', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: [ 
      { 
       name: 'example', 
       type: 'string' 
      }, 
     { 
       name: 'req', 
       type: 'int' 
      } 
     ] 
    } 
}); 

답변

0

convert() 기능 모델에 계산 필드를 추가

Ext.define('Mypp.model.MyModel', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: [ 
      { 
       name: 'example', 
       type: 'string' 
      }, 
      { 
       name: 'req', 
       type: 'int' 
      }, 
      { 
       name: 'reqDisplay', 
       type: 'string', 
       convert: function (value, record) { 
        if (value == null) { 
         var req = record.get('req'); 
         value = req ? 'Yes' : 'No' 
        } 
        return value; 
       } 
      } 
     ] 
    } 
}); 

... 그리고

grouper: { 
     property: 'reqDisplay', 
     sortProperty: 'reqDisplay' 
    }, 
대신 사용

Cheers, Oleg

+0

우수! 고맙습니다 – Arkady