我已经通过sencha中的命令行构建我的项目但是在构建之后,特定控制器的侦听器事件不起作用。我在监听器中包含的警报没有被调用。我的主要问题是标签“告诉你的朋友”之后的localStorage.providerName有时会打印undefined,所以试图在监听器中实现,但是监听器中的函数没有被调用。有什么建议?下面是不调用事件监听器的代码部分。
Ext.define('Myl.view.ShareView', {
extend: Ext.Panel,
id:'shareView',
xtype :'shareView',
alias: 'widget.shareView',
config: {
cls:'mainBackground',
items: [
{
xtype:'toptoolbar',
docked:'top'
},
{
xtype: 'label',
id: 'tellAFriendTopLabel',
// html: 'Tell your friends about '+localStorage.providerName,
padding: 5
},
{
xtype: 'button',
margin: 20,
text: 'Facebook',
ui:'facebook_button',
iconCls:'facebookIconCls',
action : 'facebookButtonPressed'
},
{
xtype: 'button',
margin: 20,
text: 'Twitter',
iconCls:'twitterIconCls',
ui:'twitter_button',
action : 'twitterButtonPressed'
},
{
xtype: 'button',
margin: 20,
text: 'Email',
ui:'email_button',
iconCls:'emailIconCls',
action : 'emailButtonPressed'
},
{
xtype :'footerPanel',
docked:'bottom'
}
]
},
listeners: {
painted: function (element, options) {
alert('test1');
Ext.getCmp('tellAFriendTopLabel').setHtml('Tell your friends about '+localStorage.providerName+'.');
this.fireEvent('initiateShareView');
}
}
});
答案 0 :(得分:0)
您必须将侦听器放在配置对象中。
但是,我不推荐这种方法,因为如果有人想要监听绘制的事件,新的处理程序将覆盖你的。我建议在'initialize'中使用'on'方法来完成它。
看一下这个组件的初始化方法:http://docs.sencha.com/touch/2.3.1/source/List.html#Ext-dataview-List