2 개의 그리드가 포함 된 뷰가 있습니다. 그리드는 2 개의 모델로 뒷받침됩니다. 2 모델 사이의 관계는 일대 다 (열쇠없는 연관)입니다.Extjs6 업데이트로 인해 더티 플래그가 지워지지 않습니다.
모델 :
Ext.define('TestApp.model.association.Project', {
extend: Ext.data.Model,
fields: [
{
type: 'int',
name: 'id'
}, {
type: 'string',
name: 'project'
}, {
type: 'number',
name: 'allocation'
}, {
type: 'string',
name: 'comments'
}, {
type:'string',
name:'state'
}
]
});
Ext.define('TestApp.model.association.User', {
extend: Ext.data.Model,
fields: [{
type: 'int',
name: 'id'
}, {
type: 'string',
name: 'employee'
}, {
type: 'string',
name: 'location'
}, {
type: 'string',
name: 'department'
}, {
type: 'string',
name: 'manager'
}, {
type: 'number',
name: 'allocation'
}],
hasMany: [{
model: 'TestApp.model.association.Project',
// Note: use of 'role' is preferred over 'name'
role: 'projects',
// Define role for inverse association
inverse: {
role: 'user'
}
}]
});
내가 자식 부분에서 하나 개의 행을 편집 한 후, 나는 (더러운 = TRUE) 불량으로 부모의 기록을 설정 한 후 나는 가게를 동기화 할 수 있습니다. 서버에서 필요한 작업을 수행 한 후 응답을 다시 보냅니다. 응답을받은 후 하위 부분의 더티 플래그는 사실로 유지됩니다.
연결이없는 경우 서버에서 응답을 받으면 더티 플래그가 자동으로 지워집니다.
자세한 내용은 fiddle을 생성했습니다.
업데이트 후에 연관에서 더티 플래그를 지우는 방법은 무엇입니까?
편집
더 나은 내 문제를 표시하는 바이올린 업데이트되었습니다. 단계 재현 :
- 선택 신원 미상의 기록을 상단 패널 하단 패널에서
- 선택 애플
- 편집 할당 및 의견 열 (사용 가능한 행 편집 플러그인)에서. 두 번째 그리드
의 도구 모음에서 확인을 누르
클라이언트가 응답에서 수신 한 하위 레코드를 설정하고 더티 플래그를 지울 수 없습니다.
왜 이렇게하고 있습니까? 이거 버그 야?
더러운 플래그를 설정하기위한 서버에 따라 당신이 의존하는 코드를 찾거나 할 수 있습니다. – Tejas
@ Tejas1991 귀하의 진술을 이해하지 못했습니다. 변경 내용이 포함 된 json을 서버에 보냅니다. DB에 저장 한 후 레코드가 들어있는 json으로 서버가 응답합니다. 그것은 휴식 응용 프로그램입니다. 일부 변경을 수행 한 후에 더티 상태가 클라이언트에서 설정됩니다. – florin
서버의 데이터를 프로그래밍 방식으로 설정하는 대신 필드의 더티 플래그를 설정하지 않는 이유는 무엇입니까? 서버의 데이터를 설정하는 코드에 대해 한 가지 말해 줄 수 있습니까? – Tejas