Sencha touch Ext.Toast在Toast正文中显示空白

Sencha touch Ext.Toast在Toast正文中显示空白,sencha-touch,toast,Sencha Touch,Toast,我正在尝试以下代码来获取显示的toast并在tap事件中隐藏它。我不知道为什么,但在某些情况下,它不会显示祝酒词中的内容 另外,有没有办法检查是否有一个现有的祝酒词,因此我不能再放一个 var me = this, toastConfig = { top: 10, right: 10, timeout: 5000, hideOnMaskTa

我正在尝试以下代码来获取显示的toast并在tap事件中隐藏它。我不知道为什么,但在某些情况下,它不会显示祝酒词中的内容

另外,有没有办法检查是否有一个现有的祝酒词,因此我不能再放一个

var me = this,
            toastConfig = { 
                top: 10, 
                right: 10, 
                timeout: 5000,
                hideOnMaskTap : true,
                message: '<div style="text-align: left; font-size: 14px;">' +
                        '   <p style="font-size:12px;text-align: center;margin-bottom: 8px;">New Message</p>' +
                        '   <p><b>' + receivedMessage.Sender + ' : </b></p>' +
                        '   <p>' + Ext.util.Format.ellipsis(Ext.util.Format.htmlEncode(receivedMessage.MessageBody), 80) + '</p>' +                        
                        '</div>'
            };

        var toastWindow = Ext.toast(toastConfig);
        var msg_toast = document.getElementsByClassName('x-toast')[0];

        if(msg_toast){            
            msg_toast.addEventListener(
                "touchend", 
                function(){
                    me.showMsgPanel();
                    toastWindow.hide();
                },
                true
            );
        }
var me=this,
toastConfig={
前10名,
右:10,,
超时:5000,
hideOnMaskTap:没错,
消息:“”+
“

”+ “”+Ext.util.Format.省略号(Ext.util.Format.htmlEncode(receivedMessage.MessageBody),80)+“

”+ '' }; var toastWindow=Ext.toast(toastConfig); var msg_toast=document.getElementsByClassName('x-toast')[0]; 如果(msg_toast){ msg_toast.addEventListener( “接触端”, 函数(){ me.showMsgPanel(); toastWindow.hide(); }, 真的 ); }

提前感谢。

我发现了其中的潜在问题。这里有两个问题: 作为

  • 使用sencha提供的Ext.toast作为单例以实现可重用性
  • 一次又一次地将侦听器附加到组件
这并不是说Ext.toast是个坏主意,但它不适合我的情况,因为我需要创建/处理单独的toast

但是,由于使用的是同一个实例,因此存在将下一个toast内容的不透明度设置为0的问题,因为我正在中断正常的流。此外,所有的事件处理程序都连接到同一个实例,并且在这些祝酒词中的任何一个上,所有的事件处理程序都会在相同的点击事件中被触发。屏幕冻结了

为了使其正常工作,我直接使用Ext.create('Ext.toast')为toast创建一个新实例,并单独处理它

在使用之后,我将从DOM中删除元素

以下是一些片段:

var toastWindow = Ext.create('Ext.Toast');
        toastWindow.show(toastConfig);
        toastWindow.innerElement.dom.addEventListener(
            "touchend",
            function(){
                toastWindow.hide();
                me.onMessageToastTap(receivedMessage);
            },
            true
        );

您正在使用哪个版本的ExtJS?如果是6,哪个工具包?我使用的是版本2.4.2.571