1

我只是想显示一个 MessageBox。但我收到一个错误:TypeError: Ext.Msg is not a function

我在控制器中的代码:

..... 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,

                        });....

它应该看起来像这里,点击一个按钮后: http: //dev.sencha.com/deploy/ext-4.0.0/examples/message-box/msg-box.html 然后顶部的一个消息框你的浏览器出现了!怎么了?有任何想法吗?谢谢!

4

2 回答 2

0

您收到“Ext.Msg 不是函数”错误,因为 Ext.Msg 不是函数。请参阅文档:http ://docs.sencha.com/extjs/4.0.7/#!/api/Ext.window.MessageBox

所以 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 论坛上的帖子问同样的事情:http ://www.sencha.com/forum/showthread.php?40261-Where-can-I-find-Ext.example.msg

于 2013-06-13T20:42:29.073 回答
0

我认为您应该检查应用程序的 js 文件。你错过了 extjs 项目中的一些东西。 这是同样的问题

于 2013-06-13T13:06:08.283 回答