ExtJs 3.4 - 如何使用工具提示预加载的 textField 组件的内容

ExtJs 3.4 - how to ToolTip a content of a textField component that was pre-loaded

这是我要放置工具提示的组件:

this.textFieldStreet = new Ext.form.TextField({
    id          : 'idTextFieldStreet',
    fieldLabel  : 'Street',
    autoCreate  : limitChar(30,30),
    listeners   : {
         render : function(c){
            Ext.QuickTips.register({
                target : c.getEl(),
                html   : '' + Ext.getCmp('idTextFieldStreet').getValue()
                }
            });
         } 
    }
});

在另一个 .js 中,我创建了定义每个组件的函数,就像您之前看到的那样,并按照您看到的方式调用该函数:

var componentFormCustomer = new ComponentFormCustomer();

然后我将值设置为:

componentFormCustomer.textFieldStreet.setValue('Some street info')

现在,问题来了,我正在寻找一些想法来做到这一点,但一无所获,我不知道这是否是完成工具提示的正确方法。求助!

解法:

为创建的 tooltip 定义 show 侦听器。在此侦听器中获取 textfieldupdate 工具提示的值。 使用这种方法,工具提示的内容将动态变化,并显示工具提示目标的内容。

Ext.onReady(function(){
    Ext.QuickTips.init();

    var textFieldStreet = new Ext.form.TextField({
        renderTo    : Ext.getBody(),
        id          : 'idTextFieldStreet',
        fieldLabel  : 'Street',
        value       : 'Initial value',
        bodyCfg     : {
            tag: 'center',
            cls: 'x-panel-body',
            html: 'Message'
        },
        listeners   : {
            render : function(c) {
                new Ext.ToolTip({
                    target : c.getEl(),
                    listeners: {
                        'show': function (t) {
                            var value = t.target.getValue();
                            t.update(value);
                        }
                    }                   
                });
            }
        } 
    });

    var button = new Ext.Button({
        renderTo : Ext.getBody(),
        text     : 'Change Tooltip',
        handler  : function () {
            textFieldStreet.setValue('New value');
        }
    });
});

备注:

使用 ExtJS 3.4.1 测试。