2013-04-11 3 views
1

Я создаю приложение ExtJS MVC с динамическим меню. У меня есть несколько элементов меню, которые будут вызывать один и тот же экран (установить активную карту в макете), но каждый раз нужно передавать другое значение в качестве параметра. Так что одна карта может отображать разные данные в зависимости от параметра, который будет действовать как фильтр.Параметр меню ExtJS для передачи

мои элементы меню имеют щелчок слушателя:

listeners: { 
    itemclick: function(view, record, item, index, e){ 
    Ext.getCmp('contentpanel').layout.setActiveItem(record.getId()); 
    } 
} 

запись Id будет карта я устанавливаю как активный. Как передать параметр на карту?

ответ

0

Вы можете просто добавить еще один атрибут панели, если хотите. Например:

Ext.define('YourApp.view.YourCardPanel' ,{ 
    extend: 'Ext.panel.Panel', 
    id: 'contentpanel', 
    alias : 'widget.yourcardpanel', 
    layout: 'card', 
    newParam: null, // Just to know that this attribute exists but there is no need to declare it. 
    items: [], 
    changeLayout: function(){ 
    if (this.newParam == 'new value') { 
     // Do your stuff 
    } 
    } 
}); 

И тогда вы можете изменить значение этого параметра.

listeners: { 
    itemclick: function(view, record, item, index, e){ 
    var cardPanel = Ext.getCmp('contentpanel'); 
    cardPanel.newParam = 'new value'; 
    cardPanel.changeLayout();  
    cardPanel.layout.setActiveItem(record.getId()); 
    } 
} 
Смежные вопросы