Как обходится Forge Viewer, напрямую запрашивающий Light DOM в инкапсулированных веб-компонентах? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь инициализировать Autodesk Forge Viewer с помощью GuiViewer3D(), и мой проект настроен на использование LitElement.Однако это приводит к ошибке, так как API Forge Viewer пытается выполнить запрос к Light DOM, используя document.getElementById(), но контейнерный элемент Viewer инкапсулирован в Shadow DOM.

Я попытался настроить графический интерфейс вручную, выполнив https://github.com/nopjia/lmv-viewer. Тем не менее, есть дополнительные накладные расходы по написанию графического интерфейса для надежности в производстве.

Другим решением было бы смонтировать компонент без присоединения shadowRoot с помощью жизненного цикла connectedCallback(), т. Е. Они будут жить в Light DOM.Но это было бы против паттерна в случае веб-компонента и LitElement.

Каким должен быть подход для решения этой проблемы, при этом все же необходимо избегать ручной настройки графического интерфейса, а также не жертвовать функциями Shadom DOM?

...