Model view controller EXTJS4:Ext.msg框未显示,抛出错误

Model view controller EXTJS4:Ext.msg框未显示,抛出错误,model-view-controller,extjs4,messagebox,Model View Controller,Extjs4,Messagebox,我只想显示一个MessageBox。但是我得到一个错误:TypeError:Ext.Msg不是一个函数 控制器中的我的代码: ..... Ext.MessageBox.show({ title:'Delete', msg: 'Delete user <b>'+r.extraParams.username+'</b>',

我只想显示一个MessageBox。但是我得到一个错误:TypeError:Ext.Msg不是一个函数

控制器中的我的代码:

..... Ext.MessageBox.show({
                            title:'Delete',
                            msg: 'Delete user <b>'+r.extraParams.username+'</b>',
                            buttons: Ext.MessageBox.YESNO,
                            fn: function(buttonId) {
                                var userId=r.extraParams.userId;
                                console.log(buttonId);
                                if (buttonId === "yes") {
                                    Ext.Msg('OK', 'User deleted', 'success');
                                }
                            },
                            icon: Ext.MessageBox.QUESTION,

                        });....
单击一个按钮后,应如下所示:
然后,浏览器顶部会出现一个消息框!怎么了?有什么想法吗?谢谢

我认为您应该检查应用程序的js文件。您在extjs项目中遗漏了一些内容。
.

您将收到“Ext.Msg不是函数”错误,因为Ext.Msg不是函数。请参阅文档:

因此,Ext.Msg在此处使用不正确:

if (buttonId === "yes") {
    Ext.Msg('OK', 'User deleted', 'success');
}
您必须显示一个新框:

if (buttonId === "yes") {
    Ext.MessageBox.show({
        title: 'Success',
        msg: 'User Deleted',
        buttons: Ext.MessageBox.OK 
    });
}
编辑:从您的评论中,听起来您希望出现一个确认框并将其淡出。这有点棘手。看看他们的例子:

Ext.get('mb4').on('click', function(e) {
    Ext.MessageBox.show({
      title: 'Save Changes?',
      msg: 'You are closing a tab that has unsaved changes. <br />Would you like to save your changes?',
      buttons: Ext.MessageBox.YESNOCANCEL,
      fn: showResult,
    });
  });

  function showResult(btn) {
    Ext.example.msg('Button Click', 'You clicked the {0} button', btn);
  };
他们正在调用他们为示例创建的函数“Ext.example.msg”。它不是一个常见的ExtJS组件。如果您想复制,您必须查看ExtJS源代码,了解他们是如何使用Ext.example.msg的


在Ext论坛上有一篇帖子问同样的问题:

但我不想要带按钮的普通MessageBox。有一种MessageBox,如上的示例所示。单击普通消息框中的按钮后,浏览器顶部会出现一个新的ohne图标,1秒后消失。这就是我想要的留言盒!