Ext 가 디자인 한 인터페이스 에 대해 서 문제 해결 방법 이 자주 흐 트 러 집 니 다.
최근 에 Ext 로 인터페이스 디자인 을 할 때 정상 적 인 페이지 가 몇 번 사용 한 후에 구조 가 엉망 인 문제 가 자주 발생 하 는 것 을 발견 했다.
코드 를 찾 아 보 니 Ext 의 stateful 이 이상 한 짓 을 한 것 같 습 니 다.
Component.js 에서 다음 과 같은 말 이 있 습 니 다.
if(this.stateful !== false){
this.initState(config);
}
Ext.state.Manager.setProvider 를 호출 하여 상태 유지 기능 을 사용 하면 많은 component 들 이 상 태 를 유지 합 니 다.
saveState : function(){
if(Ext.state.Manager){
var state = this.getState();
if(this.fireEvent('beforestatesave', this, state) !== false){
Ext.state.Manager.set(this.stateId || this.id, state);
this.fireEvent('statesave', this, state);
}
}
유 지 된 상 태 를 볼 수 있 습 니 다.기본 값 은 this.stateId|this.id 로 key 를 만 듭 니 다.그러나 대부분의 component 는 id 를 지정 하지 않 습 니 다.이 럴 때 ext 는 기본 값 으로 id 를 만 듭 니 다.
getId : function(){
return this.id || (this.id = "ext-comp-" + (++Ext.Component.AUTO_ID));
}
이 id 는 ext-comp-1000 에서 시 작 된 문자열 임 을 알 수 있 습 니 다.
하나의 인터페이스 가 새로 고침 된 후에 두 개의 서로 다른 component 가 같은 id 를 가지 고 있 을 가능성 이 높 습 니 다.이 럴 때 stateful 은 대상 을 잘못 알 수 있 습 니 다.예 를 들 어 예 를 들 어
Ext.Window 에서 유지 되 는 상 태 는:
getState : function(){
return Ext.apply(Ext.Window.superclass.getState.call(this) || {}, this.getBox());
},
getBox : function(local){
var s = this.el.getSize();
if(local === true){
s.x = this.el.getLeft(true);
s.y = this.el.getTop(true);
}else{
var xy = this.xy || this.el.getXY();
s.x = xy[0];
s.y = xy[1];
}
return s;
},
Ext.Window 가 저 장 된 좌표 와 크기 를 볼 수 있 습 니 다.이 정보 가 다른 component 에 불 러 오 면 흐 트 러 지지 않 는 것 이 이상 합 니 다.
이 문 제 를 해결 하 는 방법 은 stateful 을 묵인 하 는 것 이다.
1.Ext.state.Manager.setProvider 를 호출 하지 않 으 면 유 지 를 사용 하지 않 습 니 다.
2.
4.567913.
4.567913.기본적으로 상 태 를 유지 하지 않 습 니 다.저 는 이렇게 했 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ext.form.ComboBox 편집 페이지 표시 값 문제최근 EXTJS 3.0 개발 프로젝트, 페이지 폼에 ComboBox가 사용되었습니다. 어떻게 편집 페이지에 들어갈 때 백그라운드에서 전해지는 값을 표시할 수 있습니까?세 가지 방법이 모두 통과되었는데, 이를 요약하면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.