2

我尝试为我的应用程序编写自定义对话框。我想写了一个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();

萤火虫 说:

TypeError: cfg 在 MessageBox.js 上未定义
“NetworkError: 404 Not Found - http://appadmin.local/x-message-box-error

任何想法 ?注意:我使用 ExtJs 4.1

4

1 回答 1

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();
于 2013-01-23T15:05:24.603 回答