1. 程式人生 > >extjs 自定義事件

extjs 自定義事件


向本Observable可能觸發的事件列表中新增指定的事件。

Parameters

  • eventNames : Object/String...

    要麼是有事件名作為屬性,屬性值為 true的物件。例如:

    this.addEvents({
        storeloaded:true,
        storecleared:true});

    要麼是作為引數的任意個數的事件名。例如:

    this.addEvents('storeloaded','storecleared');
  • 使用傳遞過來的引數(去掉事件名,加上傳遞給addListeneroptions物件 )觸發指定的事件。

    Parameters

    • eventName : String

      待觸發的事件名。

    • args : Object...

      傳遞給事件處理函式的可變數量的引數

    Returns

    • 如果任何一個事件處理函式返回false,就返回false,否則返回true。

示例: Ext.define('V5.test.view.BarChart', {
extend : 'Ext.chart.Chart',
xtype : 'barchart',
width : 500,
height : 300,
animate : true,
initComponent : function() {
var me = this;
//新增自定義事件
me.addEvents('barclick');
me.store = Ext.create('Ext.data.JsonStore', {
fields : ['name', 'data'],
data : [{
'name' : 'metric one',
'data' : 10
}, {
'name' : 'metric two',
'data' : 7
}, {
'name' : 'metric three',
'data' : 5
}, {
'name' : 'metric four',
'data' : 2
}, {
'name' : 'metric five',
'data' : 27
}]
});
me.axes = [{
type : 'Numeric',
position : 'bottom',
fields : ['data'],
label : {
renderer : Ext.util.Format
.numberRenderer('0,0')
},
title : 'Sample Values',
grid : true,
minimum : 0
}, {
type : 'Category',
position : 'left',
fields : ['name'],
title : 'Sample Metrics'
}];
me.series = [{
type : 'bar',
axis : 'bottom',
highlight : true,
tips : {
trackMouse : true,
width : 140,
height : 28,
renderer : function(storeItem, item) {
this.setTitle(storeItem.get('name') + ': '
+ storeItem.get('data') + ' views');
}
},
melabel : {
display : 'insideEnd',
field : 'data',
renderer : Ext.util.Format.numberRenderer('0'),
orientation : 'horizontal',
color : '#333',
'text-anchor' : 'middle'
},
xField : 'name',
yField : 'data',
listeners : {
itemclick : function() {
//觸發自定義事件me.fireEvent('barclick');}
}
}]
this.callParent();
}


});
Test.js Ext.define('V5.test.controller.Test', {
extend : 'Ext.app.Controller',
models : [],
stores : [],
views : ['Grid','V5.test.view.BarChart'],
refs : [{
ref:'BarChart',
selector:'barchart'
}],


init : function() {
var me = this;
this.control({
'barchart':{   
barclick:me.doClick
}
});
},
//實現自定義事件
doClick:function(){
alert('hello world!!');
}

});