0

我遇到了与http://www.sencha.com/forum/showthread.php?140992-Ext.define-and-the-Scope完全相同的问题,不幸的是,线程上没有明确的答案。

我知道这scope:this行不通,因为它只会将范围从按钮更改为窗口,并且根据我的搜索和线程上给出的建议,我得出结论,唯一的解决方案是

  1. 扩展网格面板时定义别名。
  2. 遍历 DOMthis.up('alias')用于获取网格面板。

真的是唯一的解决方案吗?谢谢。

4

2 回答 2

2

根据帖子中的示例,试试这个......

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();
            }
        }
    ],
}
于 2012-06-29T11:43:29.157 回答
1

是的。组件中处理程序的范围通常是调用其处理程序的实例化组件。tbar 中的那个按钮实际上是一个组件,它的实例化形式变成了作用域。您应该像您所说的那样遍历您的面板以获取所需的对象。

于 2012-06-29T11:43:24.720 回答