通过sencha构建后,侦听器事件未触发

时间:2014-07-15 12:41:55

标签: javascript ios cordova sencha-touch

我已经通过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');

                              }

                              }
                              });

1 个答案:

答案 0 :(得分:0)

您必须将侦听器放在配置对象中。

但是,我不推荐这种方法,因为如果有人想要监听绘制的事件,新的处理程序将覆盖你的。我建议在'initialize'中使用'on'方法来完成它。

看一下这个组件的初始化方法:http://docs.sencha.com/touch/2.3.1/source/List.html#Ext-dataview-List