extjs 自定義事件
阿新 • • 發佈:2019-01-05
向本Observable可能觸發的事件列表中新增指定的事件。
Parameters
-
eventNames : Object/String...
要麼是有事件名作為屬性,屬性值為
true
的物件。例如:this.addEvents({ storeloaded:true, storecleared:true});
要麼是作為引數的任意個數的事件名。例如:
this.addEvents('storeloaded','storecleared');
-
使用傳遞過來的引數(去掉事件名,加上傳遞給addListener的
options
物件 )觸發指定的事件。Parameters
Returns
如果任何一個事件處理函式返回false,就返回false,否則返回true。
extend : 'Ext.chart.Chart',
xtype : 'barchart',
width : 500,
height : 300,
animate : true,
initComponent : function() {
var me = this;
//新增自定義事件
me.addEvents('barclick');
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',
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!!');
}
});