我想從DistrictPanel控制器中的mapPanel工具欄中選擇繪製多邊形按鈕,通過refs爲了這個目的,我在下面的選擇器中使用了DistrictMap控制器!但它不工作,我看到在控制檯中未定義!在extjs4 mvc控制器中捕獲工具欄項目事件
Ext.define('FM.controller.DistrictMap',{
extend: 'Ext.app.Controller',
refs:[
{
selector: 'mapPanel toolbar > #polygonButton',
ref: 'polygon'
}
],
init: function(){
this.control({
'mapPanel toolbar > button#polygonButton':{
click: this.drawPolygon()
}
});
},
drawPolygon: function(){
console.log(this.getPolygon());
}
我用下面的代碼添加工具欄到mapPanel。
Ext.define('FM.view.DistrictPanel',{
extend: 'Ext.panel.Panel',
initComponent: function(){
var map = Ext.create('FM.view.MapPanel',{});
map.setPolygonControl();
map.setModifyControl();
map.setSelectControl();
map.addDocked({
xtype: 'toolbar',
dock: 'top',
items:[
{
xtype: 'button',
text: 'Draw Polygon',
enableToggle: true,
toggleGroup: "draw controls",
id: 'polygonButton'
}
]});
上面的選擇器無法選擇工具欄項目! 我測試'mapPanel toolbar #polygonButton'
選擇器,但它不工作! #polygonButton
爲什麼選擇器無法選擇工具欄項目?雖然如果我在選擇器中只使用ID #polygonButton
!
我加''districtPanel mapPanel#polygonButton''到控制器onLaunch功能,它可以得到按鈕,但我不知道當我運行按鈕時應用點擊事件!因爲我不點擊按鈕! – taher 2013-03-10 12:37:09
@taher不確定你的意思,但我認爲你需要更徹底地閱讀'Ext.ComponentQuery'文檔。控制器並不神奇,它們依靠組件選擇器來工作。當你獲得組件選擇器的時候,一切都會正常工作。 – 2013-03-12 06:06:31