ext Stor의 this.proxy is undefined 오류
var orgId = "";
var fStore =new Ext.data.Store({
autoLoad : false,
url: 'findFromOMRole.action?orgId='+'orgId',
reader : new Ext.data.JsonReader({
totalProperty: 'totalCount',
root: 'list'
}, [{name : 'menuName'}, { name : 'id'}]),
sortInfo: {field: 'menuName', direction: 'ASC'}
});
Ext.form.ComboBox ({}) 에서 이벤트 listeners 를 참조하십시오.
var orgIdStore = new Ext.data.JsonStore({
url: 'findComOrgRole.action',
autoLoad: false,
sortInfo: {field: 'orgName', direction: 'ASC'},
fields: [{
name: 'role.org.id',
mapping: 'id'
}, {
name: 'orgName',
mapping: 'orgName'
}]
});
orgIdStore.load();
var orgIdComboBox = new Ext.form.ComboBox({
listClass: 'x-combo-list-small',
enableKeyEvents: true,
selectOnFocus: true,
hiddenName: 'role.org.id',
name: 'role.org.id',
id:"orgIds",
valueField: 'role.org.id',
displayField: 'orgName',
blankText : ' ',
emptyText : ' ',
selectOnFocus: true,
mode: 'local',
triggerAction: 'all',
store: orgIdStore,
fieldLabel: " ",
allowBlank : false,
editable: false,
listeners: {'select': function(){
Ext.getCmp('roleSele').setValue('');
var t_orgId = Ext.getCmp('orgIds').getValue();
fStore.load();
}
}
});
즉, 선택한 항목이 바뀔 때 fStor의 URL이 받아들인 매개 변수의 값을 바꾸어 동적 데이터 불러오는 목적을 실현한다.
그러나 이렇게 하면 FireBug를 통해 알 수 있듯이 url이 받아들인 매개 변수의 값은 변하지 않았다. 즉, 원래의 값이고 동적 불러오는 데이터를 실현하지 못했다.
listeners에 URL을 넣으면
listeners: {'select': function(){
Ext.getCmp('roleSele').setValue('');
var t_orgId = Ext.getCmp('orgIds').getValue();
url: 'findFromOMRole.action?orgId='+'orgId'
fStore.load();
}
}
Firebug 회보: "this.proxy is undefined"오류입니다.
이것은 사실 ext의stor의 작업 원리에 대해 명확하지 않아서 생긴 것이다.
우선, ext의stor는 프록시 모드를 통해 이루어진다. 먼저 프록시를 통해 백엔드에 요청을 보내고 (url에 따라) 프록시를 통해 데이터를 되돌려주고 데이터를 봉인하는 것이 우리가 마지막으로 얻은 데이터이다.
표준 Stor 형식은 다음과 같습니다.
var d_stor = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: 'queryMessages.action'
}),
reader: _jsonReader,
remoteSort: true//True proxy ,
// , Record
// ( false)。
});
load를 지정하기 전에 프록시를 지정해야 합니다. 프록시 프록시 속성을 지정하지 않고 URL을 직접 지정하면 URL에 값이 들어오면 이 URL에 HttpProxy 대상을 만들 것입니다. 그렇지 않으면 프록시 모드가 없습니다."this.proxy is undefined"오류가 발생합니다.
이것이 바로 왜 위에서 이런 오류가 발생했는지, 그러면 어떻게 데이터의 동적 불러오기를 실현합니까?
우리는 다음과 같은 두 가지 방법으로 해결할 수 있다.
fStore.baseParams.orgId = orgId;
fStore.load();
등호 왼쪽의 orgId는 전송된 매개 변수이고 오른쪽의 orgId는 전송된 값입니다. 물론 이곳의load() 방법은 Ext.form에 두는 것입니다.ComboBox({})의 listeners 에 있습니다.이 방안의 전송 참여 로드는 분리되어 진행된다.
두 번째 솔루션은 다음과 같습니다.
tStore.load({
params: {
orgId: t_orgId
}
});
전송 참여 캐리어 일체화 처리.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
개인 FLEX 지식 라이브러리 작업 노트[size=large]1、 이 방법은 TileWindows 팝업 창에 있습니다. TitleWindows의 maxWidth와 maxHeight를 지정하지 않으면 최대 값이 화면 전체에 깔립니다. 페이지의minHeigh...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.