{и снова} Скрытие вкладки на карточке

Хочу для некоторых своих категорий активностей скрыть некоторые вкладки, например, Файлы и примечания.

Нашел на форуме способ this.get("TabsCollection") + removeByKey.

И всё бы хорошо, но combinedMode, т.е. если я удалил вкладку, то открывая другую активность, где эта вкладка должна присутствовать, пользователь ее не видит. Казалось бы insert, но кого?

Есть ли полноценный работающий пример на этот случай?

Нравится

3 комментария

removeByKey возврщает удаляемый объект. Вы можете создать переменную, в которую сохранять удаляемые объекты. После этого, когда необходимо можно использовать на TabsCollection метод add и возвращать вкладку, когда нужно.

Золотарев Артем Андреевич,

А где можно создать такую глобальную переменную? Если я делаю

 

this.set("mActivityParticipantTab", tabsCollection.removeByKey("ActivityParticipantTab"));

то при заходе в новую активность this.get("mActivityParticipantTab") у меня undefined.

Во-первых, следите за контекстом. Проверьте, что вы set и get делаете в одном контексте. Также, если вы будете прятать несколько вкладок, то лучше будет использовать Terrasoft.DataValueType.COLLECTION и делать не "set", a "add", т.к. в переменной может храниться только одна вкладка.

Во-вторых, можно просто использовать контекст this и в него сохранить (что-то типа такого this.hiddenTabs = Ext.create("Terrasoft.Collection");)

Вероятнее всего вы пытаетесь делать this.get в контексте другого объекта, и там его нет

Показать все комментарии