2017-01-06 18 views
0

다음 모델과 상점이 있습니다.Ext js 6 : 격자가 삽입 된 새 항목의 모든 필드를 표시하지 않습니다.

모델 :

Ext.define('TruckTask.model.Company', { 
extend: 'Ext.data.Model', 

idProperty: 'id', 

fields: [ 
    {name: 'id', type: 'int', defaultValue: null}, 
    {name: 'name', type: 'string'}, 
    {name: 'site', type: 'string'}, 
    {name: 'createdDate', type: 'date', 
     convert: function(rawValue, model) { 

    var intDate = parseInt(rawValue); 

      if(intDate > 0){ 
       return Ext.util.Format.date(new Date(intDate), 'd.m.Y'); 
      } 

      if(typeof(rawValue) == 'object'){ 
       return rawValue; 
      } 
     } 
    }, 
    {name: 'langId', type: 'int'} 
] 

});

스토어 :

Ext.define('TruckTask.store.Company', { 
extend: 'Ext.data.Store', 

requires : [ 
    'TruckTask.model.Company', 
    'TruckTask.config.SecureRestProxy' 
], 

alias: 'store.company', 

storeId: 'company', 

model : 'TruckTask.model.Company', 

autoLoad: true, 
autoSync: true, 

proxy: { 
    type: 'secure-rest', 
    reader: { 
     type: 'json' 
    }, 
    writer: { 
     type: 'json' 
    }, 
    api: { 
     read: '/api/company', 
     create: '/api/company', 
     update: '/api/company', 
     destroy: '/api/company' 
    } 
} 

});

이 모델 목록에는 그리드 패널을 사용합니다. 그러나 새로운 모델의 창조는 또 다른 형태를 통해 이루어진다. 그리드에서

내가 가게 정의

store: { 
    type: 'company' 
}, 

과의 핸들러를 제출 형성하는 것은 구현이 있습니다

var record = this.getViewModel().get('rec'); 
    var companyStore = Ext.data.StoreManager.lookup('company'); 
    companyStore.add(record); 

그래서 레코드가 바로 그리드 패널에 나타납니다,하지만 createdDate 필드 값없이. 이 값은 서버 응답에서옵니다.

서버 응답을 받으면 그리드 패널에서이 레코드를 어떻게 업데이트합니까?

+0

자동으로 그렇게해야합니다. 그렇지 않은 경우 문제를 나타내는 최소한의 검증 가능한 예제를 작성하십시오. – Alexander

+0

예, 나는 그런 행동을 기대하지만 실제로 나는 심지어 추가 된 새로운 행을 클릭 할 수 없습니다. 그리드에 표시되었지만 선택할 때 선택할 수 없습니다. 내 트릭과 연결되어 ext js에 의해 생성 된 모델의 ID를 피할 수 있습니까? 상점에서 이벤트 리스너를 추가하십시오. 저장소에 새 레코드를 추가 할 때 템플릿 ID는 - 입니다. 그리고 서버 쪽에서 오류가 발생합니다. –

+0

ExtJS 버그로 인한 그룹화와 함께 그리드를 사용할 때 비슷한 동작이 발생했습니다. 그리드에서 그룹화를 사용합니까? – Alexander

답변

0

this answer 유용하다고 생각합니다. 귀하의 상점에 onCreateRecords을 구현하고 새 레코드를 작성하고 저장 한 후에 설정해야하는 사항을 설정하십시오.