我遇到了与http://www.sencha.com/forum/showthread.php?140992-Ext.define-and-the-Scope完全相同的问题,不幸的是,线程上没有明确的答案。
我知道这scope:this
行不通,因为它只会将范围从按钮更改为窗口,并且根据我的搜索和线程上给出的建议,我得出结论,唯一的解决方案是
- 扩展网格面板时定义别名。
- 遍历 DOM
this.up('alias')
用于获取网格面板。
它真的是唯一的解决方案吗?谢谢。
我遇到了与http://www.sencha.com/forum/showthread.php?140992-Ext.define-and-the-Scope完全相同的问题,不幸的是,线程上没有明确的答案。
我知道这scope:this
行不通,因为它只会将范围从按钮更改为窗口,并且根据我的搜索和线程上给出的建议,我得出结论,唯一的解决方案是
this.up('alias')
用于获取网格面板。它真的是唯一的解决方案吗?谢谢。
根据帖子中的示例,试试这个......
initComponent: function() {
...
var me = this;
me.tbar = [
{
text: 'Start',
iconCls: 'icon-start'
}, {
text: 'Stop',
iconCls: 'icon-stop'
}, {
text: 'Eintrag hinzufügen',
iconCls: 'icon-add',
scope: me,
handler: function() {
me.addEntry();
}
}
],
}
是的。组件中处理程序的范围通常是调用其处理程序的实例化组件。tbar 中的那个按钮实际上是一个组件,它的实例化形式变成了作用域。您应该像您所说的那样遍历您的面板以获取所需的对象。