2014-08-28 1 views
0

MVVM 구조로 응용 프로그램을 작성하고 있습니다. GeoPortal.geox.components.MapToolbar에 항목으로 버튼이 있습니다. 내보기에서 (GeoPortal.view.map.Map)이 도구 모음을 사용하고 도구 모음의 단추는 내 viewController (GeoPortal.view.map.MapController)에서 동작합니다. 이제이 툴바는 부동이어야하므로 부동 창에 놓습니다. 하지만 버튼 액션에 액세스하려면이 윈도우가 패널의 항목이어야합니다. ExtJs5 부동 창을 패널에 항목으로 추가하는 방법은 무엇입니까?

나는 아래의 코드처럼 항목을 추가하려고하지만 난이 오류가있어 :

TypeError: me.floatingItems is undefined 

GeoPortal.view.map.Map : 사전에

Ext.define("GeoPortal.view.map.Map",{ 
    "extend": "GeoPortal.geox.components.Panel", 
    "controller": "map", 
    "viewModel": { 
     "type": "map" 
    }, 
    "uses": ['GeoPortal.geox.components.MapToolbar', 
     'GeoPortal.geox.components.MapInfobar', 
     'GeoPortal.geox.components.Window' 
    ], 
    initComponent: function() { 

     var win = Ext.create({ 
      xtype: 'gxWindow', 
      id: 'mapToolbarWindow', 
      items: [{ 
       xtype: 'gxMapToolbar' 
      }] 
     }); 

     // FIX this 
     this.add(win); 
     this.callParent(); 
    }, 

    listeners : { 
     afterrender: { 
      fn: function() { 
       Ext.getCmp('mapToolbarWindow').show(); 
      } 
     } 
    }, 
    "region": 'center', 
    "collapsible": false, 
    "collapsed": false, 
    "xtype": "mapPanel", 
    items: [{ 
     xtype: 'gxMapInfobar' 
    }, { 
     html: '<div id="map" class="map"></div>' 
    }] 
}); 

감사합니다.

답변

0

this.win = Ext.create({ xtype: 'gxWindow' })에 대한 참조 만 저장할 수 있습니다. 그런 다음 필요할 때마다 사용할 수 있습니다. 윈도우의 패널에 대한 참조가 필요하면 윈도우 설정 : this.win = Ext.create({ xtype: 'gxWindow', panel: this })에 전달하십시오.

또한 패널이 파괴되면 창을 파괴해야합니다. 그렇지 않으면 잠재적 인 memleak이 생깁니다.

관련 문제