我正在考虑在我的应用程序中实现上下文帮助,我想知道是否有可能以我的方式实现它:
我想知道第2步是否可行?或者有更好的方法吗?
答案 0 :(得分:0)
好的,我深入研究它。首先,我执行以下操作来实现上下文帮助:
代码:
Ext.define('GSIP.core.help.GSIPHelp',{ alias:'plugin.help', init: function(component) { //var me = this; component.on('afterrender',function(c) { //WHY FOCUS EVENT IS NOT WORKING?? ONLY CLICK. c.getEl().on('click',function() { console.log('SHOUD REGISTER FOCUS'); GSIP.core.help.GSIPHelpMgr.registerFocus(component); }); }); } });
该解决方案存在严重缺陷。如果组件具有父级并且它们都获得了帮助插件,则click事件将以父级为最后一次触发两次。
在编码期间,我在文档Ext.FocusManager
中找到了,就是这样!使用它我能找到有针对性的组件。使用简单的功能:如果组件没有帮助我扫描其父项找到一个,如果没有父我只显示索引,我就能创建上下文帮助。
Ext.define('GSIP.core.help.Help',{ mixins:{ document:'GSIP.core.utils.Document' }, url:'/GSIP/resources/gsip/core/help/html/', showHelp:function(comp) { if (comp.help != undefined) { this.showDocumentSrc(this.url + comp.help + '.html'); }else{ if (comp.ownerCt == undefined) { this.showDocumentSrc(this.url + 'index.html'); }else{ this.showHelp(comp.ownerCt); } } } });