【发布时间】:2012-01-25 19:18:36
【问题描述】:
我正在尝试在 sencha touch 中触发自定义事件,它似乎被添加到可以触发的事件中,并且似乎触发了,但我的侦听器似乎没有响应该事件。
事件在这里被实例化,这里是表单主体:
Ext.apply(this, {
scroll: 'vertical',
dockedItems: [ titlebar, buttonbar ],
items: [ fields ],
listeners: {
beforeactivate: function() {
var saveButton = this.down('#userFormSaveButton');
saveButton.setText('Submit');
this.addEvents('cityUpdate');
console.log('event added');
},
deactivate: function() {
this.resetForm();
}
}
});
然后在此处触发事件:
if (result.data != 'false' && result.data.state) {
Ext.getCmp("usersForm").fireEvent('cityUpdate', result.data.towns);
console.log('event fired');
alert('Your town is ' + result.data.towns + ' ' + result.data.state.replace( /\+/g , ' ' ));
}
然后监听器被应用到这里表单中的一个字段:
{
xtype: 'textfield',
name: 'city',
label: 'City*',
placeHolder: 'New York',
useClearIcon: true,
id:'city',
listeners: {
cityUpdate: function(city) {
console.log('event reponse' , this.fieldEl.dom , city);
}
}
},
有人可以向我解释为什么我无法在控制台中看到事件响应调用吗?我看到添加了事件并触发了事件,但我似乎从未让事件实际运行事件响应控制台语句。我在控制台中没有收到任何错误,所以我不知道这里发生了什么?
【问题讨论】:
-
试试
console.log(Ext.getCmp("usersForm"))看看会出现什么
标签: javascript model-view-controller sencha-touch extjs