2

この目的のために、DistrictMapコントローラーのmapPanelツールバーから参照を介して[ポリゴンの描画]ボタンを選択したいのですが、DistrictMapコントローラーのセレクターの下で使用します。しかし、それは機能せず、コンソールに未定義が表示されます!

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
セレクターがツールバー項目を選択できない理由もありますか?#polygonButtonセレクターでidのみを使用する場合でも!

4

2 に答える 2

2

上記の質問では、districtPanelビューが読み込まれないため、セレクターがmapPanelツールバーのpolygonButtonを選択してこの問題を修正できないため、onLaunch関数ではなくコントローラー関数を使用する必要がありinitます。したがって、修正されたコードは次のとおりです。

Ext.define('FM.controller.DistrictMap',{
extend: 'Ext.app.Controller',
refs:[
    {
        selector: 'districtPanel mapPanel toolbar #polygonButton',
        ref: 'polygon'
    }
],
onLaunch: function(){
    this.control({
        'districtPanel mapPanel toolbar #polygonButton':{
            click: this.drawPolygon
        }
});
},
drawPolygon: function(){
     console.log(this.getPolygon());
}
于 2013-03-10T18:58:13.243 に答える
1

セレクターFM.view.MapPanelは、xtypeが。であることを意味しますmapPanel。本当にそうですか?

また、コントローラー参照とコントロールセレクターは単なるコンポーネントセレクターであることを忘れないでください。ブラウザでコンソールを開き、を使用してさまざまなセレクタを試すことができますExt.ComponentQuery.query()

于 2013-03-10T02:03:05.780 に答える