2012-01-09 2 views
3

У меня есть эта панель дерева, и я хочу позвонить this.getId() метод mainpaneltree изнутри кнопки «Развернуть все». Но все, что я получаю, это метод undefined.I пытался поместить scope:this в объекты конфигурации, но не успел.Проблема области в extjs 4

Ext.define('MA.view.patient.Tree', { 
extend : 'Ext.tree.Panel', 
alias : 'widget.EditPatientTree', 
title : 'Simple Tree', 
width : 150, 
store:'Tree', 
dockedItems : [ { 
    xtype : 'toolbar', 
    items : [ { 
     text : 'Expand All', 
     scope: this, 
     handler : function() { 
    //this.expandAll gives "Uncaught TypeError: Object [object DOMWindow] has no method 'getId'" 
      this.expandAll(); 
    //the same error for this.getId(); 
      this.getId(); 
     } 
    } ] 
} ], 
rootVisible : false, 
initComponent : function() { 
    this.callParent(arguments); 
} 
}); 

Так что мой вопрос заключается в том, чтобы получить ссылку на текущий компонент и вызвать его методы, в то время как вы находитесь внутри вложенных методов или объектов конфигурации текущего компонента

ответ

3

обработчик имеет аргументы, которые передаются в, 1 из обычно это кнопка. С помощью кнопки вы можете получить контейнер.

Ext.define('MA.view.patient.Tree', { 
extend : 'Ext.tree.Panel', 
alias : 'widget.EditPatientTree', 
title : 'Simple Tree', 
width : 150, 
store:'Tree', 
dockedItems : [ { 
    xtype : 'toolbar', 
    items : [ { 
     text : 'Expand All', 
     scope: this, 
     handler : function(button, event) { 
      var toolbar = button.up('toolbar'), treepanel = toolbar.up('treepanel'); 
      treepanel.expandAll(); 
      treepanel.getId(); 
     } 
    } ] 
} ], 
rootVisible : false, 
initComponent : function() { 
    this.callParent(arguments); 
} 
}); 
1

Вы можете использовать методы как up, down для получения ссылок компонентов, которые родитель или ребенок. В вашем случае, вы можете получить ссылку на панели дерева по:

myTree = this.up('treepanel'); 

Кроме того, вы можете использовать метод down, чтобы достать какие-либо ссылки ребенка.

Смежные вопросы