控制器中的extjs4 MVC监听器

时间:2013-01-16 22:55:42

标签: extjs extjs4 extjs4.1 extjs4.2 extjs-mvc

我在控制器中为我的系列图表创建'itemmouseup'事件的监听器时遇到了麻烦。

控制器:

init: function () {
    this.control({
        'monthbalance > chart': {
            render: this.onChartRendered,
            itemmouseup : this.onChartClick
        },          
    });
}, 

如果我插入'mouseup'事件而不是'itemmouseup'它可以正常工作。但我需要'itemmouseup'。我哪里错了?

感谢。

使用视图提取更新:

        },{
        id: 'card-1',
        xtype: 'chart',
        store: 'MonthBalances',
        title: 'This Year vs Previous Years',
        theme: 'Category1',
        legend: {position: 'right'},
        shadow: true,
        axes: [{
            type: 'Numeric',
            position: 'left',
            fields: ['monthbalance','monthlastyear','monthpreviousyear'],
            label: {
                renderer: Ext.util.Format.numberRenderer('0,0')
            },
            grid: true,
            minimum: 0
        },{
            type: 'Category',
            position: 'bottom',
            fields: ['month']
        }],

        series: [{
            type: 'line',
            title: 'this year',
            itemId: 'lineone',
            highlight: {
                size: 7,
                radius: 7
            },
            axis: 'left',
            xField: 'month',
            yField: 'monthbalance',
        //  listeners: {
        //      itemmouseup: function() {
        //          console.log('itemmouseup-thisyear');
        //      }
        //  },
        },{
            type: 'line',
            title: 'one year ago',
            itemId: 'linetwo',
            highlight: {
                size: 7,
                radius: 7
            },
            axis: 'left',
            xField: 'month',
            yField: 'monthlastyear',
        },{
            type: 'line',
            id: 'linethree',
            name: 'linethree',
            itemId: 'linethree',
            alias: 'widget.linethree',
            title: 'two years ago',
            highlight: {
                size: 7,
                radius: 7
            },
            axis: 'left',
            xField: 'month',
            yField: 'monthpreviousyear',

        }]
    }];

1 个答案:

答案 0 :(得分:1)

因为 Chart 没有itemmouseup事件。此活动仅适用于展开Ext.view.ViewExt.panel.Table

的类
  

我认为您需要直接访问该系列而不是图表   举行系列。将控件设置为您在图表中使用的系列本身,而不是图表。   您可以通过设置系列图表的 id 属性来执行此操作,以便可以将控件绑定到该ID。

// untested but it should work
init: function () {
    this.control({
        '#your-id': {
            itemmouseup : this.onChartClick
        },          
    });
},