Компилировать 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);