我尝试为我的应用编写自定义对话框。我想写了一个Ext.window.MessageBox的子类,并通过参数传递标题和消息。 我写道:
Ext.define('CRUDManantiales.view.dialog.NoUserSelected',{
extend: 'Ext.window.MessageBox',
alias: 'dialog.noUserSelected',
initComponent: function(){
this.title = this.titulo;
this.msg = 'No se ha seleccionado ningún usuario.\n Asegurese de haber elegido un usuario\n\
al cual aplicarle la operación.';
this.buttons = Ext.MessageBox.OK;
this.icon = Ext.MessageBox.ERROR;
this.callParent(arguments)
}
})
但是当创建并显示对话框时:
Ext.create('CRUDManantiales.view.dialog.NoUserSelected',{titulo: 'Agregar administrador'}).show();
Firebug说:
TypeError:在MessageBox.js上未定义cfg “NetworkError:404 Not Found - http://appadmin.local/x-message-box-error”
有什么想法吗? 注意:即时通讯使用ExtJs 4.1
答案 0 :(得分:2)
您需要将配置对象传递给方法Ext.Msg。show(cfg),而不是设置组件配置。
您可以编写自定义方法,如下:
...
initComponent: function(){
this.callParent(arguments)
},
showError: function() {
var cfg = {
title: this.titulo,
msg: 'No se ha seleccionado ningún usuario.\n Asegurese de haber elegido un usuario\n\al cual aplicarle la operación.',
buttons: Ext.MessageBox.OK,
icon: Ext.MessageBox.ERROR
};
this.show(cfg);
}
...
并显示对话框:
Ext.create('CRUDManantiales.view.dialog.NoUserSelected',{titulo: 'Agregar administrador'}).showError();