ext Stor의 this.proxy is undefined 오류

4107 단어 작업extFirebug
Stor의 동적 로드를 위해
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
						}
					});

전송 참여 캐리어 일체화 처리.

좋은 웹페이지 즐겨찾기