Как получить текущий активный номер индекса элемента (а не идентификатор активного элемента) на макете карты на Extjs?

Как мне получить текущий активный индекс элемента (и не активный идентификатор элемента) на макете карты? Следующий код возвращает активный идентификатор элемента:

     Ext.getCmp('my-wizard').getLayout().activeItem.id];

Что делать, если я не хочу определять идентификатор для своих компонентов, и я просто хочу получить доступ к номеру активного элемента?

Ответ 1

Я не мог найти встроенный быстрый и простой способ, но следующее будет работать:

var wiz = Ext.getCmp('my-wizard');
var activeItem = wiz.getLayout().activeItem;
var activeIndex = wiz.items.indexOf(activeItem);

Если это было то, что вы хотели сделать часто, вы можете добавить его в прототип CardLayout:

Ext.override(Ext.layout.CardLayout, {
    getActiveIndex: function() {
        return this.container.items.indexOf(this.activeItem);
    }
});

Затем вы можете использовать его с помощью:

var activeIndex = Ext.getCmp('my-wizard').getLayout().getActiveIndex();