我只是想展示一个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 然后会出现浏览器顶部的消息框!哇错了?有任何想法吗?谢谢!
答案 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