Компилировать bs-popover в элемент div программно

Есть ли шанс, что я мог бы собрать bs-popover элемент в div что я создаю в angularjs в коде, а затем добавить его в DOM, чтобы мой поповер работал?

menu.setAttribute('bs-popover',null);

Так что в основном я хотел бы это bs-popover быть скомпилированным в мой элемент меню, который создан таким образом

const menu = document.createElement('div'); 
menu.className += 'layout-row layout-align-center-center containerTrigger';
menu.setAttribute("id", "openMenuTrigger");
menu.setAttribute("data-content", "null");
menu.setAttribute("data-template-url", "app/main/rgc/project/components/project-details/general-info/status-menu.html");
menu.setAttribute("data-animation", "am-flip-x");
menu.setAttribute("data-auto-close", "1");
menu.setAttribute('bs-popover',null);

rightSideContainer.appendChild(menu);

Я могу добавить эти атрибуты в HTML, но правда в том, что моя логика совершенно иная, и я должен создать ее в коде. Какие-нибудь мысли?

1 ответ

Решение

В этом отношении вы можете перекомпилировать эту часть шаблона, используя $compile сервис, и он будет интерпретировать атрибуты, которые вы добавили, добавив bs-popover директивное поведение к вашему новому элементу.

Во-первых, введите $compile сервис на ваш компонент. Во-вторых, вызовите функцию компиляции перед добавлением элемента в dom и, наконец, вы можете добавить его в целевой контейнер.

const menu = document.createElement('div');

// ...

menu.setAttribute('bs-popover',null);    

$compile(rightSideContainer)(scope);

rightSideContainer.appendChild(menu);
Другие вопросы по тегам