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 필드 값없이. 이 값은 서버 응답에서옵니다.
서버 응답을 받으면 그리드 패널에서이 레코드를 어떻게 업데이트합니까?
자동으로 그렇게해야합니다. 그렇지 않은 경우 문제를 나타내는 최소한의 검증 가능한 예제를 작성하십시오. – Alexander
예, 나는 그런 행동을 기대하지만 실제로 나는 심지어 추가 된 새로운 행을 클릭 할 수 없습니다. 그리드에 표시되었지만 선택할 때 선택할 수 없습니다. 내 트릭과 연결되어 ext js에 의해 생성 된 모델의 ID를 피할 수 있습니까? 상점에서 이벤트 리스너를 추가하십시오. 저장소에 새 레코드를 추가 할 때 템플릿 ID는 - 입니다. 그리고 서버 쪽에서 오류가 발생합니다. –
ExtJS 버그로 인한 그룹화와 함께 그리드를 사용할 때 비슷한 동작이 발생했습니다. 그리드에서 그룹화를 사용합니까? – Alexander