消息框显示方法上的 ExtJS callParent 不起作用
Posted
技术标签:
【中文标题】消息框显示方法上的 ExtJS callParent 不起作用【英文标题】:ExtJS callParent on messageBox show method not working 【发布时间】:2021-04-30 16:02:04 【问题描述】:在 ExtJS 6.02 上,我有这个代码:
Ext.define('MyDialog',
extend : 'Ext.window.MessageBox'
, title : 'My title'
, closable : false
, buttonText :
ok : 'Yes'
, yes : 'Yep'
, no : 'No way'
, cancel : 'Cancel'
, show: function(cfg)
cfg =
icon: Ext.Msg.QUESTION
, msg : 'test'
, buttons : Ext.Msg.OKCANCEL
;
this.callParent(cfg);
);
弹窗出现空白,看来cfg
没有被传递给父类方法!
小提琴:https://fiddle.sencha.com/#view/editor&fiddle/3deb
【问题讨论】:
【参考方案1】:想通了。
callParent的参数必须是arrayLike类型,因为ExtJS内部使用Function.prototype.apply()
。
所以这行得通:
Ext.define('MyDialog',
extend : 'Ext.window.MessageBox'
, title : 'My title'
, closable : false
, buttonText :
ok : 'Yes'
, yes : 'Yep'
, no : 'No way'
, cancel : 'Cancel'
, show: function(cfg)
cfg =
icon: Ext.Msg.QUESTION
, msg : 'test'
, buttons : Ext.Msg.OKCANCEL
;
this.callParent([cfg]);
);
【讨论】:
以上是关于消息框显示方法上的 ExtJS callParent 不起作用的主要内容,如果未能解决你的问题,请参考以下文章