我遇到了与http://www.sencha.com/forum/showthread.php?140992-Ext.define-and-the-Scope完全相同的问题,遗憾的是线程上没有明确的答案。
我知道scope:this
无效,因为它只会将范围从按钮更改为窗口,并根据我的搜索和线程上的建议,我得出结论,唯一的解决方案是
this.up('alias')
遍历DOM以获取网格面板。真的是唯一的解决方案吗?感谢。
答案 0 :(得分: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();
}
}
],
}
答案 1 :(得分:1)
是。组件中处理程序的范围通常是调用其处理程序的实例化组件。 tbar中的那个按钮实际上是一个组件,其实例化的表单成为范围。你应该像你说要获得你想要的对象一样遍历你的面板。