建筑物或事件不起作用后看不到的物品

时间:2013-04-25 15:43:07

标签: events build sencha-touch sencha-touch-2

我有一个非常简单的应用:http://www.senchafiddle.com/#AREBJ。它由一个视图组成,显示一些链接。单击每个后,将显示带有目标值的弹出窗口。在构建应用程序之前一切正常,但在构建链接后根本不显示。为了显示我正在使用DataView组件的链接。以前我曾尝试用Ext.Component解决它,但不知道为什么在点击任何项目时(和'paint'事件也没有)触发事件。这是我更喜欢使用的第二个版本的IconsScreen视图,但没有事件它是无用的:

Ext.define('SF.view.IconsScreen', {
    extend: 'Ext.Component',
    xtype: 'icons-screen',
    require: [
        'SF.store.MainMenu'
    ],
    config: {
        tpl: new Ext.XTemplate('<ul class="menu-icons-list">',
            '<tpl for=".">',
                '<li class="icon">',
                    '<a target="{url}" style="background: url({icon})">',
                    '</a>',
                    '<span class="icon-text">{name}</span>',
                '</li>',
            '</tpl>',
        '</ul>'
        ),
        store : Ext.create('SF.store.MainMenu'),
        data : [],
        listeners : {
            painted : function(){
                this.onIconTap();
            }
        }
    },

    initialize : function() {
        var storeData = this.getStore().getRange(),
            tplData   = [];

        Ext.Array.each(storeData, function(item){
            tplData.push(item.getData());
        });

        this.setData(tplData);

        this.element.on({
            scope    : this,
            delegate : 'a',
            tap      : 'onIconTap'
        });

        this.callParent();
    },

    onIconTap : function(e, t) {
        this.fireEvent('icontap', e, t);
    }
});

我还附加了一个可构建的版本:https://mega.co.nz/#!kEZiCTQT!ckFxSQz0qMScpIX1UvfZGxa0qeQfM9MVy8hynjdPHQ8

1 个答案:

答案 0 :(得分:2)

首先,我认为在实际呈现列表之前,您的this.element是未定义的。所以你不能在构造函数中分配这样的事件。您需要等待绘制/渲染事件,然后在那里分配其他处理程序。

至于构建代码中的跟踪问题,我建议构建testing版本。它没有缩小,但它在所有其他方面等于生产。