EXTJS4:Ext.msg Box未显示,抛出错误

时间:2013-06-13 08:38:34

标签: model-view-controller extjs4 messagebox

我只是想展示一个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,

                        });....

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

2 个答案:

答案 0 :(得分:0)

我认为您应该检查应用程序的js文件。你错过了extjs项目中的一些东西。  Here's same problem

答案 1 :(得分: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