Регистрация  |  Вход

Как определить тип страницы в Lightning в Community Cloud?

Всем привет!

Делаю Lightning компонент, который должен выглядеть немного по-разному на разных страницах. Подскажите, есть ли способ определить, на какой странице(Home, Topic List, Case, Article, etc.) в Community находится компонент?

Всем привет!

Делаю Lightning компонент, который должен выглядеть немного по-разному на разных страницах. Подскажите, есть ли способ определить, на какой странице(Home, Topic List, Case, Article, etc.) в Community находится компонент? 

Сделай отдельный аттрибут, назови его page_type, добавь его в *.design. В коммунити переавай в него то что хочешь

https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_config_for_app_builder.htm

пункт 3

Сделай отдельный аттрибут, назови его page_type, добавь его в *.design. В коммунити переавай в него то что хочешь

https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/components_config_for_app_builder.htm

пункт 3

Точного ответа не дам, но как вариант могу предложить такое решение
вытягивать URL (чтобы обойти ифреймы пробовать через top.) и просто захардкодить маппинг.
Не уверен что сработает - надо пробовать. Но помню делал такое когда-то давно когда еще VF был и работали виджеты в сайдбаре (нужно было определить на какой странице сейчас виджет с сайдбаром открылся).

Точного ответа не дам, но как вариант могу предложить такое решение
вытягивать URL (чтобы обойти ифреймы пробовать через top.) и просто захардкодить маппинг. 
Не уверен что сработает - надо пробовать. Но помню делал такое когда-то давно когда еще VF был и работали виджеты в сайдбаре (нужно было определить на какой странице сейчас виджет с сайдбаром открылся). 

Maxim Elets
Сделай отдельный аттрибут, назови его page_type, добавь его в *.design. В коммунити переавай в него то что хочешь

Не получится, компонент будет внутри лейаута коммьюнити. То есть, мне нужно, чтобы определение происходило автоматически, а не ручным указанием в настройках компонента.

Dmitry Shnyrev
Точного ответа не дам, но как вариант могу предложить такое решение
вытягивать URL (чтобы обойти ифреймы пробовать через top.) и просто захардкодить маппинг.

Да, так сначала и хотел. Определять через window.location и делать захардкоженный мэппинг (урл такой-то — тип страницы такой-то), но в релизе Spring'19 стало возможным менять урлы для страниц. Например, вместо /articles можно сделать /posts и.т.д. Поскольку это проект для клиента, то предугадать пути нельзя.

[quote="Maxim Elets"]Сделай отдельный аттрибут, назови его page_type, добавь его в *.design. В коммунити переавай в него то что хочешь[/quote]

Не получится, компонент будет внутри лейаута коммьюнити. То есть, мне нужно, чтобы определение происходило автоматически, а не ручным указанием в настройках компонента.

[quote="Dmitry Shnyrev"]Точного ответа не дам, но как вариант могу предложить такое решение
вытягивать URL (чтобы обойти ифреймы пробовать через top.) и просто захардкодить маппинг. [/quote]

Да, так сначала и хотел. Определять через window.location и делать захардкоженный мэппинг (урл такой-то — тип страницы такой-то), но в релизе Spring'19 стало возможным менять урлы для страниц. Например, вместо /articles можно сделать /posts и.т.д. Поскольку это проект для клиента, то предугадать пути нельзя.

Ну можно сделать Event, в твоей компоненте слушать его, а на самих страницах добавить безюайный компонет который будет выбрасывать тип страницы?

Ну можно сделать Event, в твоей компоненте слушать его, а на самих страницах добавить безюайный компонет который будет выбрасывать тип страницы?

PS: я не говорю что решение единственное правильное, я только вкидываю разные варианты:)да и целиком всей картины мы не видим:)

PS: я не говорю что решение единственное правильное, я только вкидываю разные варианты:)да и целиком всей картины мы не видим:)